Öğretici: Microsoft Entra oturum açma bilgileriyle güvenli - Azure SQL Yönetilen Örneği

Şunlar için geçerlidir:Azure SQL Yönetilen Örneği

Bu makalede, Azure SQL Yönetilen Örneği güvenliğini sağlamak için Microsoft Entra Id (eski adı Azure Active Directory) tarafından yedeklenen sunucu sorumlularını (oturum açma bilgileri) kullanmayı öğrenin.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Yönetilen örnek için Microsoft Entra oturum açma bilgisi oluşturma
  • Yönetilen örnekte oturum açma işlemlerine izin verme
  • Oturum açma bilgileriyle Microsoft Entra kullanıcıları oluşturma
  • Kullanıcılara izin atama ve veritabanı güvenliğini yönetme
  • Kullanıcılarla kimliğe bürünme kullanma
  • Kullanıcılarla veritabanları arası sorgular kullanma
  • Tehdit koruması, denetim, veri maskeleme ve şifreleme gibi güvenlik özellikleri hakkında bilgi edinin

Not

Microsoft Entra Id, Azure Active Directory 'nin (Azure AD) yeni adıdır. Şu anda belgeleri güncelleştiriyoruz.

Önkoşullar

Öğreticiyi tamamlamak için aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

Erişimi sınırla

Yönetilen örneklere özel bir IP adresi üzerinden erişilebilir. Yalıtılmış SQL Server ortamına benzer şekilde, uygulamaların veya kullanıcıların bağlantı kurulabilmesi için önce SQL Yönetilen Örneği ağına (VNet) erişmesi gerekir. Daha fazla bilgi için bkz. Uygulamanızı SQL Yönetilen Örneği'ne bağlama.

Yönetilen örnekte bir hizmet uç noktası yapılandırmak da mümkündür ve bu da Azure SQL Veritabanı ile aynı şekilde genel bağlantılara olanak tanır. Daha fazla bilgi için bkz. Azure SQL Yönetilen Örneği’nde genel uç noktayı yapılandırma.

SSMS kullanarak Microsoft Entra oturum açma bilgileri oluşturma

İlk Microsoft Entra oturum açma bilgileri SQL yöneticisi veya sağlama sırasında oluşturulan Microsoft Entra yöneticisi tarafından oluşturulabilir. Daha fazla bilgi için bkz. SQL Yönetilen Örneği için Microsoft Entra yöneticisi sağlama.

SQL Yönetilen Örneği bağlanma örnekleri için aşağıdaki makalelere bakın:

  1. Yönetilen örneğinize sysadmin Bağlan SQL Server Management Studio (SSMS) kullanarak SQL oturum açma bilgileri veya Microsoft Entra yöneticisi.

  2. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde aşağıdaki söz dizimini kullanarak yerel bir Microsoft Entra hesabı için oturum açma bilgileri oluşturun:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    Bu örnek, hesabı nativeuser@aadsqlmi.onmicrosoft.comiçin bir oturum açma bilgisi oluşturur.

    USE master
    GO
    CREATE LOGIN [nativeuser@aadsqlmi.onmicrosoft.com] FROM EXTERNAL PROVIDER
    GO
    
  4. Oturum açma bilgilerini oluşturmak için araç çubuğunda Yürüt'e tıklayın.

  5. Aşağıdaki T-SQL komutunu yürüterek yeni eklenen oturum açma bilgilerini denetleyin:

    SELECT *  
    FROM sys.server_principals;  
    GO
    

    Screenshot of the Results tab in the S S M S Object Explorer showing the name, principal_id, sid, type, and type_desc of the newly added login.

Daha fazla bilgi için bkz . CREATE LOGIN.

Oturum açma bilgileri oluşturma izinleri verme

Diğer Microsoft Entra oturum açma bilgilerini oluşturmak için mevcut oturum açma bilgilerinin uygun izinlere sahip olması veya uygun sunucu rollerinin parçası olması gerekir.

SQL kimlik doğrulaması oturum açma işlemleri

  • Oturum açma, SQL kimlik doğrulaması tabanlı bir sunucu sorumlusuysa, Microsoft Entra hesapları için oturum açma bilgileri oluşturmak için rolüne atanması sysadmin gerekir.

Microsoft Entra kimlik doğrulaması oturum açma bilgileri

  • Oturum açma bilgisi bir Microsoft Entra sunucu sorumlusuysa, diğer Microsoft Entra kullanıcıları, grupları ve uygulamaları için oturum açma bilgileri oluşturmak için veya securityadmin sunucu rolü atanmalıdırsysadmin.
  • En azından, diğer Microsoft Entra oturum açma bilgilerini oluşturmak için ALTER ANY LOGIN izni verilmelidir.
  • Varsayılan olarak, içinde master yeni oluşturulan Microsoft Entra oturum açma işlemlerine verilen standart izinler şunlardır: CONNECT SQL ve ANY DATABASE.
  • Sunucu sysadmin rolü, yönetilen bir örnekteki birçok Microsoft Entra oturum açma bilgilerine verilebilir.

Oturum açma bilgilerini sunucu rolüne sysadmin eklemek için:

  1. Yönetilen örnekte yeniden oturum açın veya Microsoft Entra yöneticisiyle veya sql sorumlusuyla sysadminvar olan bağlantıyı kullanın.

  2. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Aşağıdaki T-SQL söz dizimini sysadmin kullanarak Microsoft Entra oturum açma sunucusu rolünü verin:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    Aşağıdaki örnek, sunucu rolüne oturum açma izni verir sysadminnativeuser@aadsqlmi.onmicrosoft.com

    ALTER SERVER ROLE sysadmin ADD MEMBER [nativeuser@aadsqlmi.onmicrosoft.com]
    GO
    

SSMS kullanarak ek Microsoft Entra oturum açma bilgileri oluşturma

Microsoft Entra oturum açma bilgileri oluşturulduktan ve ayrıcalıklar verildikten sysadmin sonra, bu oturum açma işlemi CREATE LOGIN ile FROM EXTERNAL PROVIDER yan tümcesini kullanarak ek oturum açma işlemleri oluşturabilir.

  1. SQL Server Management Studio'da (SSMS) Sunucuya Bağlan seçerek Microsoft Entra oturum açma bilgileriyle yönetilen örneğe Bağlan.

    1. Sunucu adı alanına SQL Yönetilen Örneği ana bilgisayar adınızı girin.
    2. Çok faktörlü kimlik doğrulaması oturum açma penceresi açmak için Kimlik Doğrulaması için Active Directory - MFA desteğiyle Evrensel'i seçin. Oturum açma. Daha fazla bilgi için bkz. Evrensel Kimlik Doğrulaması (çok faktörlü kimlik doğrulaması için SSMS desteği).
  2. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde, aşağıdaki söz dizimini kullanarak başka bir Microsoft Entra hesabı için oturum açma bilgisi oluşturun:

    USE master
    GO
    CREATE LOGIN login_name FROM EXTERNAL PROVIDER
    GO
    

    Bu örnek, etki alanı aadsqlmi.net Microsoft Entra aadsqlmi.onmicrosoft.com etki alanıyla federasyon olan Microsoft Entra kullanıcısı bob@aadsqlmi.netiçin bir oturum açma bilgisi oluşturur.

    Aşağıdaki T-SQL komutunu yürütür. Federasyon Microsoft Entra hesapları, şirket içi Windows oturum açma bilgileri ve kullanıcıları için SQL Yönetilen Örneği değişimleridir.

    USE master
    GO
    CREATE LOGIN [bob@aadsqlmi.net] FROM EXTERNAL PROVIDER
    GO
    
  4. CREATE DATABASE söz dizimini kullanarak yönetilen örnekte bir veritabanı oluşturun. Bu veritabanı, sonraki bölümde kullanıcı oturum açma bilgilerini test etmek için kullanılacaktır.

    1. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

    2. Sorgu penceresinde, MyMITestDB adlı bir veritabanı oluşturmak için aşağıdaki söz dizimini kullanın.

      CREATE DATABASE MyMITestDB;
      GO
      
  5. Microsoft Entra Id'de bir grup için SQL Yönetilen Örneği oturum açma bilgileri oluşturun. SQL Yönetilen Örneği oturum açma bilgilerini eklemeden önce grubun Microsoft Entra Id içinde bulunması gerekir. Bkz . Microsoft Entra Id kullanarak temel grup oluşturma ve üye ekleme. Bir grup mygroup oluşturun ve bu gruba üye ekleyin.

  6. SQL Server Management Studio'da yeni bir sorgu penceresi açın.

    Bu örnekte, Microsoft Entra Id içinde mygroup adlı bir grup olduğu varsayılır. Şu kodu yürütün:

    USE master
    GO
    CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
    GO
    
  7. Test olarak, yeni oluşturulan oturum açma bilgileri veya grupla yönetilen örnekte oturum açın. Yönetilen örneğe yeni bir bağlantı açın ve kimlik doğrulaması yaparken yeni oturum açma bilgilerini kullanın.

  8. Nesne Gezgini'da sunucuya sağ tıklayın ve yeni bağlantı için Yeni Sorgu'yu seçin.

  9. Aşağıdaki komutu yürüterek yeni oluşturulan Microsoft Entra oturum açma bilgileri için sunucu izinlerini denetleyin:

    SELECT * FROM sys.fn_my_permissions (NULL, 'DATABASE')
    GO
    

Konuk kullanıcılar bireysel kullanıcılar olarak desteklenir (bir Microsoft Entra grubunun parçası olmadan (olabilir) ve oturum açma işlemleri geçerli oturum açma söz dizimi kullanılarak doğrudan (örneğin, joe@contoso.con) içinde oluşturulabilirmaster.

Microsoft Entra oturumundan Microsoft Entra kullanıcısı oluşturma

Tek veritabanlarına yetkilendirme, SQL Server'daki veritabanlarıyla SQL Yönetilen Örneği aynı şekilde çalışır. Bu veritabanı için izin verilen veya veritabanı rolüne eklenen bir veritabanındaki mevcut oturum açma bilgisinden kullanıcı oluşturabilirsiniz.

MyMITestDB adlı bir veritabanı ve yalnızca varsayılan izinlere sahip bir oturum açma hesabı oluşturduğumuza göre, sonraki adım bu oturumdan bir kullanıcı oluşturmaktır. Şu anda oturum açma bilgileri yönetilen örneğe bağlanabilir ve tüm veritabanlarını görebilir ancak veritabanlarıyla etkileşim kuramaz. Varsayılan izinlere sahip Microsoft Entra hesabıyla oturum açar ve yeni oluşturulan veritabanını genişletmeyi denerseniz aşağıdaki hatayı görürsünüz:

Screenshot of an error message from the the S S M S Object Explorer that reads

Veritabanı izinleri verme hakkında daha fazla bilgi için bkz . Veritabanı Altyapısı İzinlerini Kullanmaya Başlama.

Microsoft Entra kullanıcısı oluşturma ve örnek tablo oluşturma

Not

Bir kullanıcı bir Microsoft Entra grubunun parçası olarak oturum açtığında bazı sınırlamalar vardır. Örneğin, SUSER_SID verilen Microsoft Entra kullanıcısı tablonun bir parçası sys.server_principals olmadığından çağrısı döndürürNULL. Bu nedenle, bu durumda belirli saklı yordamlara veya verilen izinler listesine erişim sınırlı olabilir.

  1. SQL Server Management Studio kullanarak bir sysadmin hesap kullanarak yönetilen örneğinizde oturum açın.

  2. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde, Microsoft Entra oturum açma bilgisinden kullanıcı oluşturmak için aşağıdaki söz dizimini kullanın:

    USE <Database Name> -- provide your database name
    GO
    CREATE USER user_name FROM LOGIN login_name
    GO
    

    Aşağıdaki örnek, oturum açma bob@aadsqlmi.netişleminden bir kullanıcı bob@aadsqlmi.net oluşturur:

    USE MyMITestDB
    GO
    CREATE USER [bob@aadsqlmi.net] FROM LOGIN [bob@aadsqlmi.net]
    GO
    
  4. Ayrıca, grup olan bir Microsoft Entra oturumundan Bir Microsoft Entra kullanıcısı oluşturmak da desteklenir.

    Aşağıdaki örnek, Microsoft Entra kiracınızda bulunan mygroup Adlı Microsoft Entra grubu için bir oturum açma bilgisi oluşturur.

    USE MyMITestDB
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    

    mygroup'a ait tüm kullanıcılar MyMITestDB veritabanına erişebilir.

    Önemli

    Microsoft Entra oturum açma bilgisinden kullanıcı oluştururken, login'den aynı login_name user_name belirtin.

    Daha fazla bilgi için bkz . CREATE USER.

  5. Yeni sorgu penceresinde aşağıdaki T-SQL komutunu kullanarak bir test tablosu oluşturun:

    USE MyMITestDB
    GO
    CREATE TABLE TestTable
    (
    AccountNum varchar(10),
    City varchar(255),
    Name varchar(255),
    State varchar(2)
    );
    
  6. SSMS'de oluşturulan kullanıcıyla bir bağlantı oluşturun. Daha önce tarafından sysadmin oluşturulan TestTable tablosunu göremediğini fark edeceksiniz. Kullanıcıya veritabanından veri okuma izinleri sağlamamız gerekir.

  7. Aşağıdaki komutu yürüterek kullanıcının geçerli iznini de kontrol edebilirsiniz:

    SELECT * FROM sys.fn_my_permissions('MyMITestDB','DATABASE')
    GO
    

Veritabanı düzeyindeki rollere kullanıcı ekleme

Kullanıcının veritabanındaki verileri görmesi için kullanıcıya veritabanı düzeyinde roller sağlayabiliriz.

  1. SQL Server Management Studio kullanarak bir sysadmin hesap kullanarak yönetilen örneğinizde oturum açın.

  2. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Aşağıdaki T-SQL söz dizimini db_datareader kullanarak Microsoft Entra kullanıcısının veritabanı rolünü verin:

    Use <Database Name> -- provide your database name
    ALTER ROLE db_datareader ADD MEMBER user_name
    GO
    

    Aşağıdaki örnek, kullanıcıya bob@aadsqlmi.net ve mygroup db_datareader grubuna MyMITestDB veritabanında izinler sağlar:

    USE MyMITestDB
    GO
    ALTER ROLE db_datareader ADD MEMBER [bob@aadsqlmi.net]
    GO
    ALTER ROLE db_datareader ADD MEMBER [mygroup]
    GO
    
  4. Aşağıdaki komutu yürüterek veritabanında oluşturulan Microsoft Entra kullanıcısının mevcut olup olmadığını denetleyin:

    SELECT * FROM sys.database_principals
    GO
    
  5. Role eklenmiş db_datareader kullanıcıyla yönetilen örneğe yeni bir bağlantı oluşturun.

  6. Tabloyu görmek için Nesne Gezgini'deki veritabanını genişletin.

    Screenshot from Object Explorer in S S M S showing the folder structure for Tables in MyMITestDB. The dbo.TestTable folder is highlighted.

  7. Yeni bir sorgu penceresi açın ve aşağıdaki SELECT deyimini yürütür:

    SELECT *
    FROM TestTable
    

    Tablodaki verileri görebiliyor musunuz? Döndürülen sütunları görmeniz gerekir.

    Screenshot of the Results tab in the S S M S Object Explorer showing the table column headers AccountNum, City, Name, and State.

Microsoft Entra oturum açma bilgilerini taklit edin

SQL Yönetilen Örneği, Microsoft Entra oturum açma bilgilerinin kimliğe bürünülme özelliğini destekler.

Kimliğe bürünme testi

  1. SQL Server Management Studio kullanarak bir sysadmin hesap kullanarak yönetilen örneğinizde oturum açın.

  2. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde, yeni bir saklı yordam oluşturmak için aşağıdaki komutu kullanın:

    USE MyMITestDB
    GO  
    CREATE PROCEDURE dbo.usp_Demo  
    WITH EXECUTE AS 'bob@aadsqlmi.net'  
    AS  
    SELECT user_name();  
    GO
    
  4. Saklı yordamı yürütürken kimliğine büründüğünüz kullanıcının olduğunu bob@aadsqlmi.netgörmek için aşağıdaki komutu kullanın.

    Exec dbo.usp_Demo
    
  5. EXECUTE AS LOGIN deyimini kullanarak kimliğe bürünme test edin:

    EXECUTE AS LOGIN = 'bob@aadsqlmi.net'
    GO
    SELECT SUSER_SNAME()
    REVERT
    GO
    

Not

Yalnızca rolün parçası sysadmin olan SQL sunucu düzeyinde oturum açma işlemleri, Microsoft Entra sorumlularını hedefleyen aşağıdaki işlemleri yürütebilir:

  • KULLANICI OLARAK YÜRÜT
  • OTURUM AÇMA OLARAK YÜRÜT

Veritabanları arası sorguları kullanma

Microsoft Entra oturum açma bilgilerine sahip Microsoft Entra hesapları için veritabanları arası sorgular desteklenir. Microsoft Entra grubuyla veritabanları arası sorguyu test etmek için başka bir veritabanı ve tablo oluşturmamız gerekir. Zaten varsa başka bir veritabanı ve tablo oluşturmayı atlayabilirsiniz.

  1. SQL Server Management Studio kullanarak bir sysadmin hesap kullanarak yönetilen örneğinizde oturum açın.

  2. Nesne Gezgini'da sunucuya sağ tıklayın ve Yeni Sorgu'yu seçin.

  3. Sorgu penceresinde aşağıdaki komutu kullanarak MyMITestDB2 adlı bir veritabanı ve TestTable2 adlı bir tablo oluşturun:

    CREATE DATABASE MyMITestDB2;
    GO
    USE MyMITestDB2
    GO
    CREATE TABLE TestTable2
    (
    EmpId varchar(10),
    FirstName varchar(255),
    LastName varchar(255),
    Status varchar(10)
    );
    
  4. Yeni sorgu penceresinde aşağıdaki komutu yürüterek mygroup kullanıcısını yeni MyMITestDB2 veritabanında oluşturun ve bu veritabanında mygroup için SELECT izinleri verin:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. SQL Server Management Studio'yu kullanarak yönetilen örnekte Microsoft Entra grubu mygroup'un bir üyesi olarak oturum açın. Yeni bir sorgu penceresi açın ve veritabanları arası SELECT deyimini yürütür:

    USE MyMITestDB
    SELECT * FROM MyMITestDB2..TestTable2
    GO
    

    TestTable2'den tablo sonuçlarını görmeniz gerekir.

Desteklenen diğer senaryolar

  • SQL Aracısı yönetimi ve iş yürütmeleri Microsoft Entra oturum açma işlemleri için desteklenir.
  • Veritabanı yedekleme ve geri yükleme işlemleri Microsoft Entra oturum açma bilgileri tarafından yürütülebilir.
  • Microsoft Entra oturum açma bilgileri ve kimlik doğrulama olaylarıyla ilgili tüm deyimlerin denetimi.
  • Sunucu rolünün sysadmin üyesi olan Microsoft Entra oturum açma bilgileri için ayrılmış yönetici bağlantısı.
  • Microsoft Entra oturum açma bilgileri, sqlcmd yardımcı programı ve SQL Server Management Studio aracı kullanılarak desteklenir.
  • Oturum açma tetikleyicileri, Microsoft Entra oturum açma bilgilerinden gelen oturum açma olayları için desteklenir.
  • Hizmet Aracısı ve VERITABANı postası, Microsoft Entra oturum açma bilgileri kullanılarak ayarlanabilir.

Sonraki adımlar

Güvenlik özelliklerini etkinleştirme

Veritabanınızın güvenliğini sağlamanın kapsamlı bir listesi için SQL Yönetilen Örneği güvenlik özellikleri makalesine bakın. Aşağıdaki güvenlik özellikleri ele alınıyor:

SQL Yönetilen Örneği özellikleri

SQL Yönetilen Örneği özelliklerine tam bir genel bakış için bkz: