Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
masterveritabanında Microsoft Entra girişi oluşturun - Sanal
masterveritabanında Microsoft Entra oturum açma bilgilerine eşlenmiş bir kullanıcı oluşturma - Nonunique görünen adlar için
WITH OBJECT_IDsö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
masterveritabanında Microsoft Entra oturum açma bilgileri ve kullanıcı oluşturma hakkında bilgi verilmektedir. Yalnızca bir Microsoft Entra yöneticisi sanalmasterveritabanında bir kullanıcı oluşturabilir, bu nedenle bu öğreticiyi tamamlarken Microsoft Entra yönetici hesabını kullanmanızı öneririz. Rolüneloginmanagersahip bir Microsoft Entra sorumlusu oturum açma bilgisi oluşturabilir, ancak sanalmasterveritabanı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
Bir Microsoft Entra hesabı için oturum açma hesabı oluşturun. Bu örnekte,
bob@contoso.comadlı Microsoft Entra etki alanında bulunancontosoöğ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_IDsö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.
SQL Server Management Studio (SSMS) kullanarak, Microsoft Entra yönetici hesabıyla özel SQL havuzunuza giriş yapın.
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. Aşağıdaki sorguyu çalıştırın:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER GOsys.server_principalsiç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 0Oturum açma
bob@contoso.comsanalmasterveritabanında oluşturulur.
Microsoft Entra oturumundan kullanıcı oluşturma
Bir Microsoft Entra oturum açma hesabı oluşturduktan sonra, sanal
masterveritabanı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ğimizibob@contoso.comkullanın ve sanalmasterveritabanında bir kullanıcı oluşturun. Sanalmasterveritabanında yalnızca bir Microsoft Entra yöneticisi veya SQL server yöneticisi kullanıcı oluşturabilir.Sanal
masterveritabanı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'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.
Aşağıdaki sorguyu çalıştırın:
ALTER ROLE [dbmanager] ADD MEMBER [bob@contoso.com] ALTER ROLE [loginmanager] ADD MEMBER [bob@contoso.com]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