Eğitim: Microsoft Entra sunucu girişlerini oluştur ve kullan

Bu makale, Azure Synapse Analytics dedicated SQL havuzunun (eski adıyla SQL DW) sanal veritabanında Microsoft Entra ID (master) tarafından desteklenen girişler oluşturma ve kullanma süreci konusunda size rehberlik eder. Azure Synapse Analytics workspaces'teki dedicated SQL havuzları mantıksal SQL sunucuları kullanmaz.

Not

Microsoft Entra sunucu sorumluları şu anda Azure Synapse Analytics için önizleme aşamasındadır.

Bu eğitimde şunları öğreniyorsunuz:

  • Sanal master veritabanında Microsoft Entra girişi oluşturun
  • Sanal master veritabanında Microsoft Entra oturum açma bilgilerine eşlenmiş bir kullanıcı oluşturma
  • Nonunique görünen adlar için WITH OBJECT_ID söz dizimini kullanın
  • Microsoft Entra kullanıcısına sunucu rolleri verme
  • Microsoft Entra oturum açmayı devre dışı bırakın

Prerequisites

  • Bir Azure Synapse Analytics dedicated SQL pool ve bir veritabanı
  • Azure Synapse Analytics için Microsoft Entra kimlik doğrulaması yapılandırıldı. Daha fazla bilgi için Azure Synapse Analytics ile Microsoft Entra kimlik doğrulamasını yapılandırma ve yönetme bölümüne bakınız.
  • Bu makalede, sanal master veritabanında Microsoft Entra oturum açma bilgileri ve kullanıcı oluşturma hakkında bilgi verilmektedir. Yalnızca bir Microsoft Entra yöneticisi sanal master veritabanında bir kullanıcı oluşturabilir, bu nedenle bu öğreticiyi tamamlarken Microsoft Entra yönetici hesabını kullanmanızı öneririz. Rolüne loginmanager sahip bir Microsoft Entra sorumlusu oturum açma bilgisi oluşturabilir, ancak sanal master veritabanında bir kullanıcı oluşturamayabilir.

Not

Microsoft Entra ID'de benzersiz olmayan görünen adlarla ilgilenen kuruluşlar (özellikle hizmet ilkesileri için), oturum açmayı planladığınız hizmet ilkesileriyle ilgili Nesne Kimliği bilgilerine sahip olduğunuzdan emin olun. Söz WITH OBJECT_ID dizimi uzantısı bu senaryoların çözülmesine yardımcı olabilir.

Microsoft Entra oturum açma oluştur

  1. Bir Microsoft Entra hesabı için oturum açma hesabı oluşturun. Bu örnekte, bob@contoso.com adlı Microsoft Entra etki alanında bulunan contoso öğesini kullanın. Ayrıca bir Microsoft Entra grubundan veya hizmet sorumlusundan (uygulamalardan) giriş oluşturabilirsiniz. Daha fazla bilgi için CREATE LOGIN (Transact-SQL)'ye bakın.

    Not

    İlk Microsoft Entra oturum açma bilgileri Microsoft Entra yöneticisi tarafından oluşturulmalıdır. Microsoft Entra yöneticisi bir Microsoft Entra kullanıcısı veya grubu olabilir. SQL kimlik doğrulama girişi Microsoft Entra girişleri oluşturamaz.

    Tip

    Microsoft Entra ID'de benzersiz olmayan gösterim adlarıyla ilgili sorunlarla karşılaşırsanız, WITH OBJECT_ID sözdizimi uzantısını kullanın. Bu özellik, yinelenen görünen adlara sahip hizmet sorumluları için özellikle kullanışlıdır. Örneğin:

    CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER
      WITH OBJECT_ID = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb'
    

    Daha fazla bilgi için bkz. Adlandırma ile ilgili dikkat edilmesi gerekenler.

  2. SQL Server Management Studio (SSMS) kullanarak, Microsoft Entra yönetici hesabıyla özel SQL havuzunuza giriş yapın.

  3. Genişletin Veritabanları>Sistem Veritabanları. veritabanına sağ tıklayın ve veritabanı bağlamında yeni bir sorgu penceresi açmak için Yeni Sorgu seçin.

  4. Aşağıdaki sorguyu çalıştırın:

    CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    GO
    
  5. sys.server_principals içinde oluşturulan oturum açma bilgilerini denetleyin. Şu sorguyu yürütün:

    SELECT name, type_desc, type, is_disabled
    FROM sys.server_principals
    WHERE type_desc like 'external%'
    

    Aşağıdaki gibi benzer bir çıktı görüyorsunuz:

    Name                            type_desc       type   is_disabled
    bob@contoso.com                 EXTERNAL_LOGIN  E      0
    
  6. Oturum açma bob@contoso.com sanal master veritabanında oluşturulur.

Microsoft Entra oturumundan kullanıcı oluşturma

  1. Bir Microsoft Entra oturum açma hesabı oluşturduktan sonra, sanal master veritabanındaki Microsoft Entra oturum açma hesabına eşlenen veritabanı düzeyinde bir Microsoft Entra kullanıcısı oluşturun. Kullanıcının özel rollere nasıl ekleneceğini göstermek için, örneğimizi bob@contoso.com kullanın ve sanal master veritabanında bir kullanıcı oluşturun. Sanal master veritabanında yalnızca bir Microsoft Entra yöneticisi veya SQL server yöneticisi kullanıcı oluşturabilir.

  2. Sanal master veritabanını kullanın, ancak başka veritabanlarında kullanıcı oluşturmak istiyorsanız istediğiniz bir veritabanına yeniden bağlanabilirsiniz. Aşağıdaki sorguyu çalıştırın.

    CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]
    

    Tip

    Microsoft Entra kullanıcı diğer adlarının (örneğin, bob@contoso.com) kullanılması gerekli olmasa da, Microsoft Entra kullanıcıları ve Microsoft Entra oturumları için aynı diğer adı kullanmak önerilen bir en iyi uygulamadır.

    Eğer belirli bir Nesne Kimliği ile doğrudan harici bir sağlayıcıdan bir kullanıcı oluşturmanız gerekiyorsa (örneğin, benzersiz olmayan görünme adı sorunlarını çözmek için), aşağıdaki sözdizimi kullanın:

    CREATE USER [user_name] FROM EXTERNAL PROVIDER
      WITH OBJECT_ID = 'objectid'
    
  3. içinde sys.database_principalsoluşturulan kullanıcıyı denetleyin. Şu sorguyu yürütün:

    SELECT name, type_desc, type
    FROM sys.database_principals
    WHERE type_desc like 'external%'
    

    Aşağıdaki gibi benzer bir çıktı görüyorsunuz:

    Name                            type_desc       type
    bob@contoso.com                 EXTERNAL_USER   E
    

Not

Microsoft Entra oturum açma hesabı olmadan bir Microsoft Entra kullanıcısı oluşturmak için kullanılan mevcut söz dizimi hâlâ desteklenmektedir. Aşağıdaki sözdizimini çalıştırırsanız, bağlı olduğunuz belirli veritabanında bağımsız veritabanı kullanıcısı oluşturursunuz. Bu kullanıcı, sanal veritabanında aynı isimli bir giriş olsa master bile herhangi bir girişle ilişkilendirilmez.

Örneğin, CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER.

Benzersiz olmayan bir görünen ada sahip bir hizmet sorumlusu kullanarak Microsoft Entra oturum açma oluşturabilirsiniz. Daha fazla bilgi için bkz. Adlandırma ile ilgili hususlar.

Microsoft Entra oturum açma bilgilerine sunucu düzeyinde roller verme

master veritabanındaki ##MS_DefinitionReader##, ##MS_ServerStateReader## veya ##MS_ServerStateManager## rolü gibi sabit sunucu düzeyi rollerine oturum açma hesaplarını ekleyebilirsiniz.

Not

Burada bahsedilen sunucu düzeyindeki roller Microsoft Entra grupları için desteklenmez.

ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateReader## ADD MEMBER [AzureAD_object];
ALTER SERVER ROLE ##MS_ServerStateManager## ADD MEMBER [AzureAD_object];

kullanıcı yeniden bağlanana kadar izinler geçerli olmaz. DBCC önbelleğini de temizleyin:

DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS

Hangi Microsoft Entra oturum açma bilgilerinin sunucu düzeyindeki rollerin parçası olduğunu denetlemek için aşağıdaki sorguyu çalıştırın:

SELECT roles.principal_id AS RolePID,roles.name AS RolePName,
       server_role_members.member_principal_id AS MemberPID, members.name AS MemberPName
       FROM sys.server_role_members AS server_role_members
       INNER JOIN sys.server_principals AS roles
       ON server_role_members.role_principal_id = roles.principal_id
       INNER JOIN sys.server_principals AS members
       ON server_role_members.member_principal_id = members.principal_id;

Microsoft Entra kullanıcıları için özel roller verme

Sanal master veritabanındaki kullanıcılara Azure Synapse Analytics için özel roller atayabilirsiniz.

Bir kullanıcıya özel veritabanı rollerinden birini vermek için, kullanıcının sanal master veritabanında var olması gerekir.

Bir kullanıcıyı bir role eklemek için aşağıdaki sorguyu çalıştırın:

ALTER ROLE [dbmanager] ADD MEMBER [AzureAD_object]

Bir kullanıcıyı rolden kaldırmak için aşağıdaki sorguyu çalıştırın:

ALTER ROLE [dbmanager] DROP MEMBER [AzureAD_object]

AzureAD_object, Microsoft Entra ID'de bir Microsoft Entra kullanıcısı, grup veya hizmet sorumlusu olabilir.

Aşağıdaki örnekte, bob@contoso.com kullanıcısını oluşturursunuz. Kullanıcıya dbmanager ve loginmanager rollerini atayın.

  1. Aşağıdaki sorguyu çalıştırın:

    ALTER ROLE [dbmanager] ADD MEMBER [bob@contoso.com]
    ALTER ROLE [loginmanager] ADD MEMBER [bob@contoso.com]
    
  2. Aşağıdaki sorguyu çalıştırarak veritabanı rolü atamasını denetleyin:

    SELECT DP1.name AS DatabaseRoleName,
      isnull (DP2.name, 'No members') AS DatabaseUserName
    FROM sys.database_role_members AS DRM
    RIGHT OUTER JOIN sys.database_principals AS DP1
      ON DRM.role_principal_id = DP1.principal_id
    LEFT OUTER JOIN sys.database_principals AS DP2
      ON DRM.member_principal_id = DP2.principal_id
    WHERE DP1.type = 'R'and DP2.name like 'bob%'
    

    Aşağıdaki gibi benzer bir çıktı görüyorsunuz:

    DatabaseRoleName       DatabaseUserName
    dbmanager              bob@contoso.com
    loginmanager           bob@contoso.com
    

İsteğe bağlı - Oturum açmayı devre dışı bırakma

Özel bir SQL havuzunda Microsoft Entra oturum açma işlemini etkinleştirmek veya devre dışı bırakmak için ALTER LOGIN (Transact-SQL) DDL sözdizimini kullanın.

ALTER LOGIN [bob@contoso.com] DISABLE

ENABLE veya DISABLE değişikliklerinin hemen etkili olması için, kimlik doğrulama önbelleğini ve TokenAndPermUserStore önbelleğini aşağıdaki T-SQL komutlarını kullanarak temizleyin:

DBCC FLUSHAUTHCACHE
DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS

Giriş özelliğinin devre dışı olduğundan aşağıdaki sorguyu çalıştırarak kontrol edin:

SELECT name, type_desc, type
FROM sys.server_principals
WHERE is_disabled = 1