Aracılığıyla paylaş


Öğ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:

  • SQL yönetilen örneği için Microsoft Entra oturum açma bilgileri oluşturun.
  • SQL yönetilen örneğindeki oturum açma işlemleri için izinler verin.
  • Oturum açma bilgileriyle Microsoft Entra kullanıcıları oluşturun.
  • Kullanıcılara izinler atayın ve veritabanı güvenliğini yönetin.
  • Kullanıcılarla kimliğe bürünme özelliğini kullanın.
  • Kullanıcılarla veritabanları arası sorgular kullanın.
  • Tehdit koruması, denetim, veri maskeleme ve şifreleme gibi güvenlik özellikleri hakkında bilgi edinin.

Not

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Önkoşullar

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

Erişimi sınırla

SQL yönetilen örneklerine ö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.

Azure SQL Veritabanı ile aynı şekilde genel bağlantılara olanak tanıyan SQL yönetilen örneğinde bir hizmet uç noktası yapılandırmak da mümkündü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

SQL yöneticisi, sağlama sırasında oluşturulan ilk Microsoft Entra oturum açma bilgilerini veya Microsoft Entra yöneticisini oluşturabilir. 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. SQL Server Management Studio (SSMS) kullanarak sysadmin SQL oturum açma bilgileriyle veya Microsoft Entra yöneticisiyle SQL yönetilen örneğine bağlanın.

  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
    

    SSMS Nesne Gezgini'nde yeni eklenen oturum açma bilgilerinin adını, principal_id, sid'yi, türünü ve type_desc gösteren Sonuçlar sekmesinin ekran görüntüsü.

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 sysadmin rolüne atanması 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 sysadmin veya securityadmin sunucu rolü atanmalıdır.
  • En azından, ALTER ANY LOGIN diğer Microsoft Entra oturum açma bilgilerini oluşturmak için izin verilmelidir.
  • Varsayılan olarak, içinde yeni oluşturulan Microsoft Entra oturum açma işlemlerine verilen standart izinler ve master'CONNECT SQLtirVIEW ANY DATABASE.
  • Sysadmin sunucu rolü, BIR SQL yönetilen örneği içinde birçok Microsoft Entra oturum açma bilgilerine verilebilir.

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

  1. SQL yönetilen örneğinde yeniden oturum açın veya microsoft Entra yöneticisiyle veya sysadmin olan SQL sorumlusuyla var 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 kullanarak Microsoft Entra oturum açma işlemini sysadmin sunucu rolüne verin:

    ALTER SERVER ROLE sysadmin ADD MEMBER login_name
    GO
    

    Aşağıdaki örnek, oturum açma işlemine nativeuser@aadsqlmi.onmicrosoft.com sunucu rolü verir:

    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 sysadmin ayrıcalıkları verildikten sonra, bu oturum açma ile yan tümcesini FROM EXTERNAL PROVIDERCREATE LOGINkullanarak 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 SQL yönetilen örneğine bağlanın.

    1. Sunucu adı alanına SQL Yönetilen Örneği ana bilgisayar adınızı girin.
    2. Kimlik Doğrulaması için Microsoft Entra MFA'yı seçerek çok faktörlü bir kimlik doğrulaması oturum açma penceresi açın. 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ı Microsoft Entra etki alanıyla bob@aadsqlmi.netaadsqlmi.net olan Microsoft Entra kullanıcısı aadsqlmi.onmicrosoft.comiç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 SQL yönetilen örneğinde 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. Mygroup adlı bir grup 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 SQL yönetilen örneğinde oturum açın. SQL yönetilen örneğine 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
    

Azure SQL'in kullanıcı ve oturum açma bilgileri olarak Microsoft Entra sorumlularını desteklemesi, iç ve dış konuk kullanıcıları Microsoft Entra Dış Kimlik genişletir. Hem bireysel hem de grubun bir parçası olan konuk kullanıcılar, Azure SQL'deki diğer Microsoft Entra kullanıcılarınınkiyle aynı şekilde kullanılabilir. Konuk kullanıcıların diğer Microsoft Entra sunucusu oturum açma bilgilerini veya veritabanı kullanıcılarını oluşturabilmesini istiyorsanız, Microsoft Entra dizinindeki diğer kimlikleri okuma izinlerine sahip olmaları gerekir. Bu izin dizin düzeyinde yapılandırılır. Daha fazla bilgi için bkz . Microsoft Entra Id'de konuk erişim izinleri.

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 eklenmiş bir veritabanındaki mevcut oturum açma bilgilerinden bir 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 SQL yönetilen örneğine 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:

SSMS Nesne Gezgini'nden

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ı NULL tablosunun parçası olmadığından çağrısı döndürür. Bu nedenle, bu durumda belirli saklı yordamlara veya verilen izinler listesine erişim sınırlı olabilir.

  1. SQL Server Management Studio'da sysadmin hesabıyla SQL 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 user oluştururken, user_name ile LOGINaynı login_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 sysadmin tarafından oluşturulan TestTable tablosunu göremeyeceksiniz. 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 hesabıyla SQL 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 kullanarak Microsoft Entra kullanıcısının db_datareader 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 grubuna MyMITestDB veritabanında db_datareader izinleri 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. db_datareader rolüne eklenmiş kullanıcıyla SQL yönetilen örneğine yeni bir bağlantı oluşturun.

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

    MyMITestDB'deki Tablolar için klasör yapısını gösteren SSMS'deki Nesne Gezgini'nin ekran görüntüsü. Şu dbo. TestTable klasörü vurgulanmış.

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

    SELECT *
    FROM TestTable
    

    Tablodaki verileri görebiliyor musunuz? Aşağıdaki ekran görüntüsünde gösterildiği gibi döndürülen sütunları görmeniz gerekir:

    AccountNum, City, Name ve State tablo sütun başlıklarını gösteren SSMS Nesne Gezgini'ndeki Sonuçlar sekmesinin ekran görüntüsü.

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 hesabıyla SQL 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. deyimini kullanarak kimliğe bürünme test edin EXECUTE AS LOGIN :

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

Not

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

  • EXECUTE AS USER
  • EXECUTE AS LOGIN

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 hesabıyla SQL 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 SELECT için izinler verin:

    USE MyMITestDB2
    GO
    CREATE USER [mygroup] FROM LOGIN [mygroup]
    GO
    GRANT SELECT TO [mygroup]
    GO
    
  5. SQL Server Management Studio'yu kullanarak SQL yönetilen örneğinde Microsoft Entra grubu mygroup'un bir üyesi olarak oturum açın. Yeni bir sorgu penceresi açın ve veritabanları SELECT arası 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.
  • Microsoft Entra oturum açma işlemleri veritabanı yedekleme ve geri yükleme işlemlerini yürütebilir.
  • Microsoft Entra oturum açma bilgileri ve kimlik doğrulama olaylarıyla ilgili tüm deyimlerin denetimi.
  • Sysadmin sunucu rolünün ü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.