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 ile kimlik doğrulaması için Microsoft Entra ID'nin nasıl kullanılacağını gösteriyor.
Not
Microsoft Entra sunucu asılları şu anda Azure Synapse Analytics için önizleme aşamasındadır.
Prerequisites
Microsoft Entra kimlik doğrulamasını Azure Synapse Analytics ile kullanmak için aşağıdaki ön koşullara ihtiyacınız var:
- Kullanıcılar ve gruplarla dolu bir Microsoft Entra kiracısı.
- Mevcut bir Azure Synapse çalışma alanı veya bağımsız ayrılmış SQL havuzu.
Microsoft Entra tenant oluşturma ve yükleme
Azure Synapse Analytics için Microsoft Entra doğrulamasını yapılandırmadan önce, bir Microsoft Entra tenant’ı oluşturup kullanıcılar ve gruplarla doldurmanız gerekir. Microsoft Entra kiracılarını tamamen Azure içinde yönetebilir veya onları şirket içi Active Directory Etki Alanı Servisi'nin federasyonu için kullanabilirsiniz.
Daha fazla bilgi için bakınız:
- Microsoft Entra ID nedir?
- Microsoft Entra ID ile şirket içi kimliklerinizi entegre edin
- Alan adınızı Microsoft Entra ID'ye ekleyin
- Microsoft Entra ID ile federasyon nedir?
- Microsoft Entra ID ile Dizin eşitlemesi
- Windows PowerShell kullanarak Microsoft Entra ID'yi yönetme
- Karma Kimlik Gerekli Bağlantı Noktaları ve Protokoller
Microsoft Entra yöneticisini ayarlama
Microsoft Entra kimlik doğrulamasını kullanmak için Azure Synapse kaynağınızın bir Microsoft Entra yöneticisine ihtiyacı vardır.
Kaynağı oluştururken Microsoft Entra yöneticisini de yapılandırmak mümkündür. Zaten bir yöneticiniz varsa, bu bölümü atlayın.
Azure Synapse çalışma alanı
Azure Synapse workspace için, çalışma alanında Microsoft Entra yöneticisini yapılandırın. Daha fazla bilgi için Yönetici yapısı sayfasına bakınız.
Standalone dedicated SQL pool
Microsoft Entra yöneticisini ayarladığınızda, bağımsız bir özel SQL havuzu barındıran mantıksal sunucu için Microsoft Entra kimlik doğrulamasını etkinleştirirsiniz. Yöneticiyi Azure portalı, PowerShell, Azure CLI veya REST API'leri kullanarak ayarlayabilirsiniz.
Azure portalında logical server adını bulabilirsiniz
- Azure Synapse Analytics'daki tek başına ayrılmış SQL havuzunuzun Overview sayfasındaki sunucu adı alanında.
Azure portalında mantıksal sunucunuzun Microsoft Entra yöneticisini ayarlamak için şu adımları izleyin:
Azure portalı Dizinler + abonelikler panelinde, Azure Synapse kaynağınızı içeren dizini Geçerli dizin olarak seçin.
SQL sunucularını arayın ve ardından özel SQL havuzunuz için mantıksal sunucuyu seçerek SQL sunucu panelini açın.
Mantıksal sunucunuzun SQL sunucusu bölmesinde, Settings altındaki Microsoft Entra ID'i seçerek Microsoft Entra ID bölmesini açın.
Microsoft Entra ID bölmesinde, Yönetici ayarla seçeneğini belirleyin ve Microsoft Entra ID bölmesini açın.
Microsoft Entra ID bölmesi geçerli dizininizdeki tüm kullanıcıları, grupları ve uygulamaları gösterir ve ad, diğer ad veya kimliğe göre arama yapmanıza olanak tanır. Microsoft Entra yöneticiniz için istediğiniz kimliği bulun ve seçin, ardından Seç'i seçerek bölmeyi kapatın.
Mantıksal sunucunuzun Microsoft Entra ID sayfasının üst kısmında Kaydet'ı seçin.
Object ID, Microsoft Entra kullanıcıların ve grupların yönetici adının yanında görüntülenir. Uygulamalar (hizmet sorumluları) için Uygulama Kimliği görüntülenir.
Yöneticiyi değiştirme işlemi birkaç dakika sürebilir. Ardından yeni yönetici Microsoft Entra admin alanında görünür.
Yöneticiyi kaldırmak için, Microsoft Entra ID sayfasının üst kısmından Remove admin öğesini ve ardından Kaydet'yi seçin. Microsoft Entra yöneticisinin kaldırılması, mantıksal sunucunuz için Microsoft Entra kimlik doğrulamasını devre dışı bırakır.
Not
Microsoft Entra yöneticisi, sunucunun master veritabanında kullanıcı (veritabanı sorumlusu) olarak depolanır. Veritabanı asıl adlarının benzersiz olması gerektiğinden, yöneticinin görünen adı sunucunun master veritabanındaki herhangi bir kullanıcının adıyla aynı olamaz. Zaten mevcut olan bir kullanıcı adı varsa, Microsoft Entra yönetici kurulumu başarısız olur ve adın zaten kullanımda olduğunu belirterek geri alınır.
Microsoft Graph izinlerini atayın
Bazı işlemler için Azure Synapse Analytics, Microsoft Graph izinleri'nde açıklandığı gibi Microsoft Graph'ı sorgulamak için izinler gerektirir. Azure Synapse Analytics, kaynak kimliğinde Application.Read.All, User.Read.All ve GroupMember.Read.All gibi ayrıntılı Microsoft Graph API izinlerini destekler. Bu yaklaşım en az ayrıcalık ilkesini izler ve önerilir. Ayrıca Dizin Okuyucuları rolünü daha geniş bir alternatif olarak da kullanabilirsiniz. Daha fazla bilgi için bkz. Managed identities in Microsoft Entra for Azure Synapse Analytics.
Dizin Okuyucuları rolü
Rehberli bir prosedür için, bkz. Dizin Okuyucuları rolünü bir Microsoft Entra grubuna atama.
Aşağıdaki PowerShell betiği, Dizin Okuyucuları rolüne Azure Synapse kaynak kimliği ekler.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$tenantId = "<TenantId>" # Enter your tenant ID
Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}
# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
Write-Output $roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
# Add principal to Directory Readers role
Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
Microsoft Entra yöneticisi artık Microsoft Entra sunucu sorumluları (girişler) ve veritabanı sorumluları (kullanıcılar) oluşturabilir.
SQL'de Microsoft Entra ilkelerini oluşturma
Azure Synapse Analytics'te Microsoft Entra kimlik doğrulamasıyla bir veritabanına bağlanmak için, bu kimlik için veritabanında en az CONNECT iznine sahip bir güvenlik sorumlusu yapılandırmanız gerekir.
Veritabanı kullanıcı izinleri
Bir veritabanı kullanıcısı oluşturduğunuzda, varsayılan olarak veritabanı için CONNECT iznini alır. Veritabanı kullanıcısı da izinleri iki durumda devralır:
- Kullanıcı, sunucuda ayrıca izinlere sahip Microsoft Entra grubunun üyesidir.
- Kullanıcıyı bir girişten oluşturuyorsunuz ve kullanıcı, girişin veritabanı için geçerli olan, sunucu tarafından atanmış izinlerini devralır.
Sunucu ve veritabanı sorumluları için izinleri yönetme, sorumlu türüne (Microsoft Entra ID, SQL kimlik doğrulaması vb.) bakılmaksızın aynı şekilde çalışır. Kullanıcılara doğrudan izin vermek yerine veritabanı rollerine izin verin. Sonra uygun izinlere sahip rollere kullanıcılar ekleyin. Bu yaklaşım, uzun vadeli izin yönetimini basitleştirir ve artık uygun olmadığında bir kimliğin erişimi sürdürme olasılığını azaltır.
Daha fazla bilgi için bakınız:
- Veritabanı altyapısı izinleri ve örnekleri
- Blog: Veritabanı Altyapısı izin temelleri
- Azure Synapse Analytics için veritabanı erişimini yetkilendirin
Kapsanan veritabanı kullanıcıları
Kapsanan veritabanı kullanıcısı, veritabanında oturum açma bilgilerine master bağlı olmayan bir SQL kullanıcısı türüdür. Microsoft Entra içerilen veritabanı kullanıcısı oluşturmak için, en azından ALTER ANY USER iznine sahip bir Microsoft Entra kimliğiyle veritabanına bağlanın. Aşağıdaki T-SQL örneği, Microsoft Entra ID'den Microsoft_Entra_principal_name adlı bir veritabanı aslı oluşturur.
CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;
Microsoft Entra grubuna ait kapalı bir veritabanı kullanıcısı oluşturmak için grubun görünen adını girin:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Yönetilen kimlik veya hizmet sorumlusu için bağımsız veritabanı kullanıcısı oluşturmak için kimliğin görünen adını girin:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Microsoft Entra kullanıcısı için kapsamalı bir veritabanı kullanıcısı oluşturmak için kimliğin kullanıcı ana adını girin.
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Oturum açma tabanlı kullanıcılar
Not
Microsoft Entra server principals (logins) şu anda Azure Synapse Analytics için önizleme aşamasında.
Microsoft Entra sunucu güvenlik ilkeleri (ya da oturumlar) desteklenir; bu da kapsanan veritabanı kullanıcılarının gerekli olmaması anlamına gelir. Veritabanı ilkeleri (kullanıcılar) bir sunucu ilkesine göre oluşturulabilir; bu da Microsoft Entra kullanıcılarının, sunucu düzeyinde atanan giriş izinlerini devralabileceği anlamına gelir.
CREATE USER [appName] FROM LOGIN [appName];
Microsoft Entra sunucu ilkeleri (oturum açma bilgileri) oluşturma söz dizimi için bkz. CREATE LOGIN.
Dış kullanıcılar
Azure aboneliğinizle ilişkilendirilmiş olandan farklı bir Microsoft Entra kiracısında yönetilen bir kimlik için doğrudan veritabanı kullanıcısı oluşturamazsınız. Ancak, diğer dizinlerden kullanıcıları ilgili dizine dış kullanıcı olarak aktarabilirsiniz. Sonra bunları kullanarak veritabanına erişebilecek içeren veritabanı kullanıcıları oluşturabilirsiniz. Dış kullanıcılar, Microsoft Entra gruplarına üyelik yoluyla da erişim elde edebilir.
Örnekler: Microsoft Entra federe veya yönetilen etki alanı kullanıcısını temsil eden bir sınırlı veritabanı kullanıcısı oluşturmak için:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Yönetilen bir alan adına harici kullanıcı olarak aktardığınız federe etki alanı kullanıcı hesabı, yönetilen alan kimliğini kullanmak zorundadır.
Ad konusunda dikkat edilmesi gerekenler
T-SQL : ve & deyimlerinde kullanıcı adlarında iki nokta CREATE LOGIN veya ampersand CREATE USER gibi özel karakterler kullanılamaz.
Microsoft Entra ID ve Azure Synapse Analytics, kullanıcı yönetim tasarımında tek önemli bir şekilde farklılık gösterir: Microsoft Entra ID, bir kiracı içinde tekrarlanan ekran adlarına izin verirken, Azure Synapse Analytics özel bir SQL havuzunda benzersiz sunucu sorumlusu adları ve veritabanında benzersiz veritabanı sorumlusu adları gerektirir.
Microsoft Graph izinleri
Bu komut, oturum açmış kullanıcı adına Microsoft Entra ID’ye (dış sağlayıcı) erişmek için Azure Synapse Analytics’i gerektirir. Bazen Microsoft Entra ID bir istisna döndürür.
- Microsoft Entra Id'ye özgü hata iletisini içeren SQL hatası 33134 ile karşılaşabilirsiniz. Hata genellikle erişimin reddedildiğini, kullanıcının kaynağa erişmek için MFA'ya kaydolması gerektiğini veya birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini belirtir. İlk iki durumda, sorun genellikle kullanıcının Microsoft Entra kiracısında ayarlanan Koşullu Erişim ilkelerinden kaynaklanır: kullanıcının dış sağlayıcıya erişmesini engeller. Koşullu Erişim politikalarını, uygulama
00000003-0000-0000-c000-000000000000’a (Microsoft Graph API'nin uygulama kimliği) erişime izin verecek şekilde güncellemek sorunu çözmelidir. Hata, birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini belirtiyorsa, sorunun nedeni kullanıcının hizmet sorumlusu olarak oturum açmış olmasıdır. Bunun yerine bir kullanıcı tarafından yürütülürse komut başarılı olmalıdır. -
Bağlantı Zaman Aşımı Süresi Doldu alırsanız, bağlantı dizesi
TransparentNetworkIPResolutionparametresini false olarak ayarlamanız gerekebilir. Daha fazla bilgi için .NET Framework 4.6.1 - TransparentNetworkIPResolution ile ilgili Bağlantı zaman aşımı sorunu başlıklı belgeye bakın.
Microsoft Entra kimliklerine dayalı kapsayıcı veritabanı kullanıcıları oluşturma hakkında daha fazla bilgi için bkz. CREATE USER.
Çok faktörlü kimlik doğrulamasını yapılandırma
Güvenliği artırmak için, kullanıcıyı veritabanına kimlik doğrulaması için telefon görüşmesi veya kimlik doğrulama uygulaması gibi ikinci bir yöntem kullanmasını isteyen çok faktörlü kimlik doğrulama (MFA) yapılandırmayı düşünün.
Azure Synapse Analytics ile çok faktörlü kimlik doğrulama kullanmak için önce çok faktörlü kimlik doğrulamayı etkinleştirin, ardından MFA'yı zorunlu kılmak için Koşullu Erişim politikası kullanın.
Microsoft Entra ile bağlanma
Microsoft Entra kimlik doğrulaması yapılandırıldıktan sonra, Azure Synapse Analytics'e bağlanmak için SQL Server Management Studio veya SQL Server Veri Araçları ile bunu kullanabilir ve istemci uygulamalarını Microsoft Entra kimliklerini kullanarak bağlanacak şekilde yapılandırabilirsiniz.
Microsoft Entra kimlik doğrulaması sorunlarını giderme
Rehberlik için bkz. Microsoft Entra kimlik doğrulamasıyla ilgili sorunların giderilmesi.