Azure SQL ile Azure AD kimlik doğrulamasını yapılandırma ve yönetme
AŞAĞıDAKILER IÇIN GEÇERLIDIR:
Azure SQL Veritabanı Azure SQL Yönetilen Örneği
Azure Synapse Analytics
bu makalede, bir Azure Active Directory (azure ad) örneği oluşturma ve doldurma ve sonra azure ad 'yi Azure SQL Veritabanı, azure SQL yönetilen örneğive azure Synapse Analyticsile birlikte kullanma hakkında yönergeler verilmektedir. genel bakış için Azure Active Directory kimlik doğrulaması' na bakın.
Azure AD kimlik doğrulama yöntemleri
Azure AD kimlik doğrulaması aşağıdaki kimlik doğrulama yöntemlerini destekler:
- Azure AD yalnızca bulut kimlikleri
- Azure AD karma kimlikleri şunları destekler:
- Sorunsuz çoklu oturum açma (SSO) ile birlikte iki seçenekten oluşan bulut kimlik doğrulaması
- Azure AD Parola karması kimlik doğrulaması
- Azure AD geçişli kimlik doğrulaması
- Federasyon kimlik doğrulaması
- Sorunsuz çoklu oturum açma (SSO) ile birlikte iki seçenekten oluşan bulut kimlik doğrulaması
Azure AD kimlik doğrulama yöntemleri hakkında daha fazla bilgi edinmek ve aralarından seçim yapmak için, bkz. Azure Active Directory karma kimlik çözümünüz için doğru kimlik doğrulama yöntemini seçme.
Azure AD karma kimlikleri, kurulumu ve eşitlemesi hakkında daha fazla bilgi için bkz.:
- parola karması kimlik doğrulaması- Azure AD Connect eşitleme ile parola karması eşitlemesi uygulama
- geçişli kimlik doğrulaması- Azure Active Directory geçişli kimlik doğrulaması
- federal kimlik doğrulaması- Azure 'da Active Directory Federasyon Hizmetleri (AD FS) dağıtma ve Azure AD Connect ve federasyon
Azure AD örneği oluşturma ve doldurma
Bir Azure AD örneği oluşturun ve Kullanıcı ve gruplarla doldurun. Azure AD, ilk Azure AD tarafından yönetilen etki alanı olabilir. Azure AD, Azure AD ile federe olan bir şirket içi Active Directory Domain Services de olabilir.
Daha fazla bilgi için bkz.
- Şirket içi kimliklerinizi Azure Active Directory ile tümleştirme
- Azure AD 'ye kendi etki alanı adınızı ekleyin
- Microsoft Azure artık Windows Server Active Directory federasyonu destekliyor
- Azure Active Directory nedir?
- Windows PowerShell’i kullanarak Azure AD’yi yönetme
- Karma kimlik Için gerekli bağlantı noktaları ve protokoller.
Azure Active Directory’ye bir Azure aboneliğini ekleme veya ilişkilendirme
dizine, veritabanını barındıran azure aboneliği için güvenilen bir dizin oluşturarak azure aboneliğinizi Azure Active Directory ilişkilendirin. ayrıntılar için bkz. Azure Active Directory kiracınıza Azure aboneliği ilişkilendirme veya ekleme.
Etki alanıyla ilişkili aboneliğe geçmek için Azure portal Dizin değiştiricisini kullanın.
Önemli
Her Azure aboneliği bir Azure AD örneğiyle güven ilişkisine sahiptir. Bu; Azure aboneliğinin kullanıcılar, hizmetler ve cihazlar için kimlik doğrulaması yapmak üzere bu dizine güvendiği anlamına gelir. Birden çok abonelik aynı dizine güvenebilir ancak bir abonelik yalnızca bir dizine güvenir. Aboneliğin bir dizinle arasındaki bu güven ilişkisi, bir aboneliğin daha çok abonelik alt kaynakları gibi olan, Azure'daki tüm diğer kaynaklarla (web siteleri, veritabanları ve benzeri) sahip olduğu ilişkiye benzer nitelikte değildir. Bir aboneliğin süresi dolarsa abonelikle ilişkili bu diğer kaynaklara erişim de durdurulur. Ancak dizin Azure içinde kalır, siz de başka bir aboneliği bu dizinle ilişkilendirebilir, dizin kullanıcılarını yönetmeye devam edebilirsiniz. Kaynaklar hakkında daha fazla bilgi için bkz. Azure 'da kaynak erişimini anlama. Bu güvenilen ilişki hakkında daha fazla bilgi edinmek için bkz. Azure Active Directory Azure aboneliğini ilişkilendirme veya ekleme.
SQL Veritabanı bir sunucuyla Azure AD yöneticisi
azure 'daki her sunucu (SQL Veritabanı veya Azure Synapse ' i barındırır), sunucunun tamamının yöneticisi olan tek bir sunucu yöneticisi hesabıyla başlar. Azure AD hesabı olarak ikinci bir yönetici hesabı oluşturun. Bu asıl sunucunun ana veritabanında kapsanan bir veritabanı kullanıcısı olarak oluşturulur. Yönetici hesapları her kullanıcı veritabanında db_owner rolün üyeleridir ve her bir kullanıcı veritabanını dbo kullanıcısı olarak girer. Yönetici hesapları hakkında daha fazla bilgi için bkz. veritabanlarını ve oturum açma Işlemlerini yönetme.
coğrafi çoğaltma ile Azure Active Directory kullanırken, hem birincil hem de ikincil sunucular için Azure Active Directory yöneticisinin yapılandırılması gerekir. sunucuda Azure Active Directory yöneticisi yoksa, Azure Active Directory oturumlar ve kullanıcılar bir Cannot connect sunucu hatası alır.
Not
Bir Azure AD hesabına (Sunucu Yöneticisi hesabı dahil) dayalı olmayan kullanıcılar, Azure AD tabanlı kullanıcılar oluşturamaz, çünkü bu kişiler önerilen veritabanı kullanıcılarını Azure AD ile doğrulama iznine sahip değildir.
Azure AD yöneticisi sağlama (SQL yönetilen örnek)
Önemli
yalnızca Azure SQL yönetilen bir örnek sağlıyorsanız bu adımları izleyin. Bu işlem, Azure AD 'de yalnızca genel yönetici veya ayrıcalıklı rol yöneticisi tarafından yürütülebilir.
Genel önizlemede, Dizin OKUYUCULARı rolünü Azure AD 'deki bir gruba atayabilirsiniz. grup sahipleri daha sonra yönetilen örnek kimliğini bu grubun bir üyesi olarak ekleyebilir ve bu, SQL yönetilen örnek için bir Azure AD yöneticisi sağlamanıza olanak tanır. bu özellik hakkında daha fazla bilgi için bkz. Azure SQL için Azure Active Directory dizin okuyucuları rolü.
SQL yönetilen örneğinizin, güvenlik grubu üyeliği veya yeni kullanıcı oluşturma aracılığıyla kullanıcıların kimlik doğrulaması gibi görevleri başarılı bir şekilde gerçekleştirmek için Azure AD 'yi okuma izinlerine sahip olması gerekir. bunun çalışması için Azure AD 'yi okumak üzere SQL yönetilen örnek izni vermeniz gerekir. Azure portal veya PowerShell 'i kullanarak bunu yapabilirsiniz.
Azure portal
SQL yönetilen örneği azure ad okuma iznini Azure portal kullanarak vermek için azure ad 'de genel yönetici olarak oturum açın ve şu adımları izleyin:
Azure Portal, sağ üst köşede, olası etkin dizinlerin açılan listesinden bağlantınızı seçin.
Varsayılan Azure AD olarak doğru Active Directory seçin.
bu adım, Azure AD örneği ve SQL yönetilen örneği için aynı aboneliğin kullanıldığından emin olmak üzere Active Directory ile ilişkili aboneliği SQL yönetilen örneğe bağlar.
Azure AD tümleştirmesi için kullanmak istediğiniz SQL yönetilen örneğe gidin.

Active Directory yönetici sayfasının üst başlığını seçin ve geçerli kullanıcıya izin verin.

İşlem başarılı olduktan sonra, sağ üst köşede aşağıdaki bildirim görünür:

artık SQL yönetilen örneğiniz için Azure AD yöneticinizle seçim yapabilirsiniz. Bunun için, Active Directory yönetici sayfasında, yönetici komutunu ayarla ' yı seçin.

Azure AD Yöneticisi sayfasında, bir Kullanıcı arayın, yönetici olacak kullanıcıyı veya grubu seçin ve ardından Seç' i seçin.
Active Directory yönetici sayfası, Active Directory tüm üyelerini ve gruplarını gösterir. Gri olan kullanıcılar veya gruplar Azure AD yöneticileri olarak desteklenmediği için seçilemez. Azure AD özellikleri ve kısıtlamalarındandesteklenen Yöneticiler listesine bakın. azure rol tabanlı erişim denetimi (azure RBAC) yalnızca Azure portal geçerlidir ve SQL Veritabanı, SQL yönetilen örneği veya Azure Synapse 'e yayılmaz.

Active Directory Yöneticisi sayfasının en üstünde Kaydet' i seçin.

Yöneticiyi değiştirme işlemi birkaç dakika sürebilir. Ardından yeni yönetici Active Directory yönetici kutusunda görünür.
SQL yönetilen örneğiniz için bir azure ad yöneticisi sağlamaktan sonra, create logın sözdizimi ile azure ad server sorumlularını (oturum açma) oluşturmaya başlayabilirsiniz. daha fazla bilgi için bkz. SQL yönetilen örneğe genel bakış.
İpucu
Bir yöneticiyi daha sonra kaldırmak için, Active Directory yönetici sayfasının üst kısmında, Yöneticiyi Kaldır' ı seçin ve ardından Kaydet' i seçin.
PowerShell
PowerShell kullanarak SQL yönetilen örneği Azure AD okuma iznini vermek için şu betiği çalıştırın:
# Gives Azure Active Directory read permission to a Service Principal representing the SQL Managed Instance.
# Can be executed only by a "Global Administrator" or "Privileged Role Administrator" type of user.
$aadTenant = "<YourTenantId>" # Enter your tenant ID
$managedInstanceName = "MyManagedInstance"
# Get Azure AD role "Directory Users" and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}
Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
# Get service principal for your SQL Managed Instance
$roleMember = Get-AzureADServicePrincipal -SearchString $managedInstanceName
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No Service Principals with name '$ ($managedInstanceName)', make sure that managedInstanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: More than one service principal with name pattern '$ ($managedInstanceName)'"
Write-Output "Dumping selected service principals...."
$roleMember
exit
}
# Check if service principal is already member of readers role
$allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
$selDirReader = $allDirReaders | where{$_.ObjectId -match $roleMember.ObjectId}
if ($selDirReader -eq $null) {
# Add principal to readers role
Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role'..."
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId $roleMember.ObjectId
Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role'..."
#Write-Output "Dumping service principal '$($managedInstanceName)':"
#$allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
#$allDirReaders | where{$_.ObjectId -match $roleMember.ObjectId}
}
else {
Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role'."
}
SQL yönetilen örnek için PowerShell
PowerShell cmdlet 'lerini çalıştırmak için Azure PowerShell yüklü ve çalışıyor olması gerekir. Ayrıntılı bilgi için bkz. Azure PowerShell'i yükleme ve yapılandırma.
Önemli
PowerShell Azure Resource Manager (RM) modülü Azure SQL yönetilen örnek tarafından hala desteklenmektedir, ancak gelecekteki tüm geliştirmeler Az. SQL modülüne yöneliktir. AzureRM modülü, en az Aralık 2020 ' e kadar hata düzeltmeleri almaya devam edecektir. Az Module ve Azurerd modüllerinde komutların bağımsız değişkenleri önemli ölçüde aynıdır. uyumluluklarını hakkında daha fazla bilgi için bkz. new Azure PowerShell konusuna giriş Az module.
bir Azure AD yöneticisi sağlamak için aşağıdaki Azure PowerShell komutları yürütün:
- Connect-AzAccount
- Select-AzSubscription
SQL yönetilen örneğiniz için Azure AD yöneticisi 'ni sağlamak ve yönetmek için kullanılan cmdlet 'ler aşağıdaki tabloda listelenmiştir:
| Cmdlet adı | Description |
|---|---|
| Set-Azsqlınstanceactivedirectoryadministrator | geçerli abonelikte SQL yönetilen örnek için bir Azure AD yöneticisi sağlar. (Geçerli abonelikte olmalıdır) |
| Remove-Azsqlınstanceactivedirectoryadministrator | geçerli abonelikteki SQL yönetilen örneği için bir Azure AD yöneticisini kaldırır. |
| Get-Azsqlınstanceactivedirectoryadministrator | geçerli abonelikte SQL yönetilen örnek için bir Azure AD yöneticisiyle ilgili bilgileri döndürür. |
aşağıdaki komut, ResourceGroup01 adlı bir kaynak grubuyla ilişkili ManagedInstance01 adlı SQL yönetilen bir örnek için Azure AD yöneticisiyle ilgili bilgileri alır.
Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"
aşağıdaki komut, ManagedInstance01 adlı SQL yönetilen örnek için dbas adlı bir Azure AD yönetici grubu sağlar. Bu sunucu, kaynak grubu ResourceGroup01 ile ilişkilendirilmiştir.
Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"
aşağıdaki komut, ResourceGroup01 kaynak grubu ile ilişkili ManagedInstanceName01 adlı SQL yönetilen örnek için Azure AD yöneticisini kaldırır.
Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru
Azure AD yöneticisi sağlama (SQL Veritabanı)
Önemli
yalnızca SQL Veritabanı veya Azure Synapse için bir sunucu sağlıyorsanız bu adımları izleyin.
aşağıdaki iki yordam, Azure portal sunucusu için ve PowerShell kullanarak sunucunuzun Azure Active Directory yöneticisini nasıl sağlayacağınızı gösterir.
Azure portal
Azure Portal, sağ üst köşede, olası etkin dizinlerin listesini aşağı eklemek için bağlantınızı seçin. Varsayılan Azure AD olarak doğru Active Directory seçin. Bu adım, Azure AD ve sunucu için aynı aboneliğin kullanıldığından emin olmak üzere abonelikle ilişkili Active Directory sunucuyla bağlantılandırır.
SQL sunucu araması yapın ve seçin.

Not
bu sayfada, SQL sunucuları' nı seçmeden önce, kategorinin en sevdiğiniz adı yanındaki yıldızı seçip sol gezinti çubuğuna SQL sunucuları ekleyebilirsiniz.
SQL Server sayfasında, Active Directory yönetici' yi seçin.
Active Directory Yöneticisi sayfasında, yönetici ayarla' yı seçin.

Yönetici Ekle sayfasında, bir Kullanıcı arayın, yönetici olacak kullanıcıyı veya grubu seçin ve ardından Seç' i seçin. (Active Directory yönetici sayfası, Active Directory tüm üyelerini ve gruplarını gösterir. Gri olan kullanıcılar veya gruplar Azure AD yöneticileri olarak desteklenmediğinden seçilemiyor. ( SQL Veritabanı veya azure Synapse kimlik doğrulaması için Azure Active Directory kimlik doğrulaması kullan' ın Azure AD özellikleri ve sınırlamaları bölümünde desteklenen yöneticiler listesine bakın.) Azure rol tabanlı erişim denetimi (Azure RBAC) yalnızca portala uygulanır ve SQL Server yayılmaz.

Active Directory Yöneticisi sayfasının en üstünde Kaydet' i seçin.

Yöneticiyi değiştirme işlemi birkaç dakika sürebilir. Ardından yeni yönetici Active Directory yönetici kutusunda görünür.
Not
Azure AD yöneticisi ayarlanırken yeni yönetici adı (Kullanıcı veya grup), sanal ana veritabanında sunucu kimlik doğrulaması kullanıcısı olarak zaten mevcut olamaz. Varsa, Azure AD yönetici kurulumu başarısız olur; oluşturma geri alınıyor ve bu tür bir yöneticinin (ad) zaten var olduğunu gösterir. Bu tür bir sunucu kimlik doğrulama kullanıcısı Azure AD 'nin bir parçası olmadığından, Azure AD kimlik doğrulaması kullanarak sunucuya bağlanma çabaları başarısız olur.
Bir yöneticiyi daha sonra kaldırmak için, Active Directory yönetici sayfasının üst kısmında, Yöneticiyi Kaldır' ı seçin ve ardından Kaydet' i seçin.
SQL Veritabanı ve Azure için PowerShell Synapse
PowerShell cmdlet 'lerini çalıştırmak için Azure PowerShell yüklü ve çalışıyor olması gerekir. Ayrıntılı bilgi için bkz. Azure PowerShell'i yükleme ve yapılandırma. bir Azure AD yöneticisi sağlamak için aşağıdaki Azure PowerShell komutları yürütün:
- Connect-AzAccount
- Select-AzSubscription
SQL Veritabanı ve azure Synapse için azure AD yöneticisi 'ni sağlamak ve yönetmek için kullanılan cmdlet 'ler:
| Cmdlet adı | Description |
|---|---|
| Set-AzSqlServerActiveDirectoryAdministrator | SQL Veritabanı veya Azure Synapse barındıran sunucu için Azure Active Directory yöneticisi sağlar. (Geçerli abonelikte olmalıdır) |
| Remove-AzSqlServerActiveDirectoryAdministrator | SQL Veritabanı veya Azure Synapse barındıran sunucu için Azure Active Directory yöneticisini kaldırır. |
| Get-AzSqlServerActiveDirectoryAdministrator | SQL Veritabanı veya Azure Synapse barındırma sunucusu için şu anda yapılandırılmış bir Azure Active Directory yöneticisi hakkındaki bilgileri döndürür. |
Bu komutların her biri hakkında daha fazla bilgi için Get-Help PowerShell komutunu kullanın. Örneğin, get-help Set-AzSqlServerActiveDirectoryAdministrator.
Aşağıdaki betik, 40b79501-b343-44ed-9ce7-da4c8cc7353f Grup-23 adlı bir kaynak grubunda DEMO_SERVER sunucusu için DBA_Group (nesne kimliği) adlı bir Azure AD yönetici grubu sağlar:
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"
DisplayName giriş parametresi, Azure AD görünen adını veya Kullanıcı asıl adını kabul eder. Örneğin DisplayName="John Smith" ve DisplayName="johns@contoso.com". Azure AD grupları için yalnızca Azure AD görünen adı desteklenir.
Not
Azure PowerShell komutu, Set-AzSqlServerActiveDirectoryAdministrator desteklenmeyen kullanıcılar için Azure AD yöneticileri 'ni sağlamanıza engel olmaz. Desteklenmeyen bir Kullanıcı sağlanabilir, ancak bir veritabanına bağlanamaz.
Aşağıdaki örnek, isteğe bağlı ObjectID'yi kullanır:
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
-DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"
Not
DisplayName benzersiz OLMADıĞıNDA Azure AD ObjectID gereklidir. objectıd ve DisplayName değerlerini almak için, Klasik Azure Portalı Active Directory bölümünü kullanın ve bir kullanıcının veya grubun özelliklerini görüntüleyin.
Aşağıdaki örnek, sunucusu için geçerli Azure AD Yöneticisi hakkındaki bilgileri döndürür:
Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List
Aşağıdaki örnek bir Azure AD yöneticisini kaldırır:
Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"
Not
REST apı 'lerini kullanarak da Azure Active Directory yöneticisi sağlayabilirsiniz. daha fazla bilgi için bkz. Azure SQL Veritabanı için Azure SQL Veritabanı işlemler için hizmet yönetimi REST API başvuru ve işlemler
Hizmet sorumlularını kullanarak Azure AD yöneticisini ayarlama veya kümeyi geri ayarlama
Hizmet sorumlusu ayarlamayı veya Azure SQL için Azure AD yöneticisini ayarlamayı planlıyorsanız ek bir API İzni gerekir. Directory.Read.Tüm Uygulama API'si izninin Azure AD'de uygulamanıza eklenmiş olması gerekir.
Not
Azure AD yöneticisini ayarlamaya yönelik bu bölüm yalnızca PowerShell veya CLI komutlarını kullanmak için geçerlidir çünkü azure ad Azure portal hizmet sorumlusu olarak kullanılamaz.
Hizmet sorumlusu ayrıca SQL Server için SQL Veritabanı Katkıda Bulunan rolüne veya SQL Yönetilen Örneği için SQL Rolüne de ihtiyaç SQL gerekir.
Daha fazla bilgi için bkz. hizmet sorumluları (Azure AD uygulamaları).
İstemci bilgisayarlarınızı yapılandırma
Uygulama veya kullanıcılarının Azure AD kimliklerini kullanarak SQL Veritabanı Azure Synapse tüm istemci makinelerde aşağıdaki yazılımları yüklemeniz gerekir:
- .NET Framework 4.6 veya sonraki bir sonraki bir sonraki bir. https://msdn.microsoft.com/library/5a4x27ek.aspx
- Azure Active Directory için Kimlik Doğrulama Kitaplığı SQL Server (ADAL.DLL). Aşağıda,ADAL.DLLkitaplığını içeren en son SSMS, ODBC ve OLE DB yükleme bağlantılarınıADAL.DLL verilmiştir.
Bu gereksinimleri şu şekilde karşılarsiniz:
- SQL Server Management Studio veya SQL Server Veri Araçları sürümünün .NET Framework 4.6 gereksinimini karşılar.
- SSMS,ADAL.DLL'nin x86 sürümünüADAL.DLL.
- SSDT,ADAL.DLL'nin amd64 sürümünüADAL.DLL.
- Visual Studio İndirmeleri'Visual Studio en son sürüm .NET Framework 4.6 gereksinimini karşılar, ancakADAL.DLL'nin gerekli amd64 sürümünü yüklemez.
Azure AD kimliklerine eşlenen bağımsız kullanıcılar oluşturma
Yönetilen SQL Azure AD sunucu sorumlularını (oturum açmalar) desteklediği için, tek veritabanı kullanıcılarının kullanımı gerekli değildir. Azure AD sunucu sorumluları (oturum açma), Azure AD kullanıcılarından, gruplarından veya uygulamalarından oturum açma bilgileri oluşturmanıza olanak tanır. Bu, yönetilen örneğinizin kimliğini SQL veritabanı kullanıcısı yerine Azure AD sunucusu oturum açma bilgilerini kullanarak doğrulayabilirsiniz. Daha fazla bilgi için bkz. SQL Yönetilen Örneğine genel bakış. Azure AD sunucu sorumlularını (oturum açma bilgileri) oluşturma söz dizimi için bkz. CREATE LOGIN.
Ancak, Azure Active Directory ve SQL Veritabanı Azure Synapse için Azure AD kimliğine dayalı olarak veritabanı kullanıcılarının kullanımı gerekir. Bir veritabanı kullanıcısı ana veritabanında oturum açma bilgilerine sahip değildir ve azure AD'de veritabanıyla ilişkilendirilmiş bir kimliğe eşler. Azure AD kimliği tek bir kullanıcı hesabı veya grup olabilir. Tek veritabanı kullanıcıları hakkında daha fazla bilgi için bkz. Contained Database Users- Making Your Database Portable.
Not
Veritabanı kullanıcıları (yöneticiler hariç) veritabanı kullanıcıları, Azure portal. Azure rolleri SQL Veritabanı, SQL Yönetilen Örnek veya Azure Synapse. Azure rolleri Azure Kaynaklarını yönetmek için kullanılır ve veritabanı izinleri için geçerli değildir. Örneğin, SQL Server Katkıda Bulunanı rolü SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse. Erişim izni, Transact-SQL deyimleri kullanılarak doğrudan veritabanında ver gerekir.
Uyarı
T-SQL ve deyimlerine kullanıcı adı olarak ekli olduğunda iki nokta üst üste : veya ve gibi özel karakterler & CREATE LOGIN CREATE USER desteklanmaz.
Önemli
2048'den fazla Azure AD güvenlik gruplarının üyesi olan Azure AD kullanıcıları ve hizmet sorumluları (Azure AD uygulamaları), SQL Veritabanı, Yönetilen Örnek veya Azure Synapse'da veritabanında oturum açma desteğine sahip değildir.
Azure AD tabanlı bir veritabanı kullanıcısı (veritabanının sahibi olan sunucu yöneticisi dışında) oluşturmak için veritabanına bir Azure AD kimliğiyle bağlanın ve en azından HER KİYİ KULLANıCı IZNINI AL iznine sahip bir kullanıcı olarak bağlanın. Ardından aşağıdaki Transact-SQL kullanın:
CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
Azure_AD_principal_name Azure AD kullanıcı asıl adı veya Bir Azure AD grubunun görünen adı olabilir.
Örnekler: Azure AD federasyon veya yönetilen etki alanı kullanıcılarını temsil eden bir veritabanı kullanıcısı oluşturmak için:
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
Azure AD veya federasyon etki alanı grubunu temsil eden bir veritabanı kullanıcısı oluşturmak için bir güvenlik grubunun görünen adını girin:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Azure AD belirteci kullanarak bağlanan bir uygulamayı temsil eden bir veritabanı kullanıcısı oluşturmak için:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Not
Bu komut, SQL kullanıcı adına Azure AD'ye ("dış sağlayıcı") erişmeyi gerektirir. Bazen, Azure AD'nin bir özel durum geri dönmek için neden olduğu durumlar SQL. Bu durumlarda, kullanıcı Azure AD'SQL hata iletisini içermesi gereken 33134 hatasını görebilir. Hata çoğu zaman erişimin reddedilmiş olduğunu veya kullanıcının kaynağa erişmek için MFA'ya kaydolması gerektiğini veya birinci taraf uygulamalar arasındaki erişimin ön kimlik doğrulaması yoluyla işlenmeleri gerektiğini ifade ediyor. İlk iki durumda, sorun genellikle kullanıcının Azure AD kiracısı içinde ayarlanmış Koşullu Erişim ilkelerinden kaynak olur: Kullanıcının dış sağlayıcıya erişmesini önler. '00000002-0000-0000-c000-00000000000' (Azure AD Graph API'sinde uygulama kimliği) uygulamaya erişime izin vermek için Koşullu Erişim ilkelerini güncelleştirmek sorunu çözmelisiniz. Hata, birinci taraf uygulamalar arasındaki erişimin ön kimlik doğrulaması yoluyla işlenmeleri gerektiğini belirtiyorsa, sorunun nedeni kullanıcının hizmet sorumlusu olarak oturum açık olmasıdır. Bunun yerine bir kullanıcı tarafından yürütülürse komut başarılı olur.
İpucu
Azure aboneliğiniz ile ilişkili Azure Active Directory doğrudan Azure Active Directory kullanıcı oluşturamazsınız. Ancak, ilişkili Active Directory'de (dış kullanıcılar olarak bilinir) içe aktarılan diğer Etkin Dizinlerin üyeleri, kiracı Active Directory'de bir Active Directory grubuna eklenebilir. Bu AD grubu için bir veritabanı kullanıcısı oluşturarak, dış Active Directory'deki kullanıcılar bu ad grubuna SQL Veritabanı.
Kullanıcı kimliklerini temel alan bir Azure Active Directory veritabanı kullanıcısı oluşturma hakkında daha fazla bilgi için bkz. CREATE USER (Transact-SQL).
Not
Sunucu için Azure Active Directory kaldırmak, herhangi bir Azure AD kimlik doğrulama kullanıcılarının sunucuya bağlanmasını önler. Gerekirse, kullanılamaz Azure AD kullanıcıları bir yönetici tarafından el ile SQL Veritabanı atılabilir.
Not
Bağlantı Zaman Aşımı Süresi Doldu alırsanız, bağlantı dizesinin parametresini TransparentNetworkIPResolution false olarak ayarlamanız gerekir. Daha fazla bilgi için bkz. 4.6.1 - TransparentNetworkIPResolution.NET Framework bağlantı zaman aşımı sorunu.
Bir veritabanı kullanıcısı seniz, bu kullanıcı CONNECT iznini alır ve bu veritabanına PUBLIC rolünün bir üyesi olarak bağlanabilirsiniz. Başlangıçta kullanıcıya yalnızca PUBLIC rolüne verilen izinler veya üyesi olduğu Azure AD gruplarına verilen izinler kullanılabilir. Azure AD tabanlı bir veritabanı kullanıcısı sağlarken, kullanıcıya, diğer herhangi bir kullanıcı türüne izin vermek gibi ek izinler veebilirsiniz. Genellikle veritabanı rollerine izinler verin ve rollere kullanıcı ekleyin. Daha fazla bilgi için bkz. Veritabanı Altyapısı İzin Temelleri. Özel güvenlik rolleri hakkında daha fazla SQL Veritabanı için bkz. Azure SQL Veritabanı'de Veritabanlarını ve Oturum Azure SQL Veritabanı. Yönetilen bir etki alanına dış kullanıcı olarak aktarılan bir federasyon etki alanı kullanıcı hesabının yönetilen etki alanı kimliğini kullanması gerekir.
Not
Azure AD kullanıcıları, veritabanı meta verilerinde E türüyle (EXTERNAL_USER) ve X (EXTERNAL_GROUPS) türüne sahip gruplar için işaretlenir. Daha fazla bilgi için bkz. sys.database_principals.
Bağlan SSMS veya SSDT kullanarak veritabanına erişim
Azure AD yöneticisinin düzgün ayar olduğunu onaylamak için Azure AD yönetici hesabını kullanarak ana veritabanına bağlanın. Azure AD tabanlı bir veritabanı kullanıcısı (veritabanının sahibi olan sunucu yöneticisi dışında) sağlama için veritabanına, veritabanına erişimi olan bir Azure AD kimliğiyle bağlanın.
Önemli
2016 Azure Active Directory dan başlayarak SQL Server Management Studio (SSMS) ve 2015'te SQL Server Veri Araçları kimlik doğrulaması desteği sunulmaktadır. SSMS'nin Ağustos 2016 sürümü, yöneticilerin telefon araması, kısa mesaj, pin içeren akıllı kartlar veya mobil uygulama bildirimi kullanarak Multi-Factor Authentication gerektirmesini sağlayan Active Directory Evrensel Kimlik Doğrulaması desteği de içerir.
SSMS veya SSDT kullanarak bağlanmak için Azure AD kimliği kullanma
Aşağıdaki yordamlar, SQL Server Management Studio veya SQL Veritabanı Araçları kullanarak Azure AD kimliğiyle SQL Server gösterir.
Active Directory tümleşik kimlik doğrulaması
Federasyon etki alanındaki Azure Active Directory kimlik bilgilerinizi kullanarak Windows oturum açtıysanız veya geçiş ve parola karması kimlik doğrulaması için sorunsuz çoklu oturum açma için yapılandırılmış yönetilen bir etki alanı kullanıyorsanız bu yöntemi kullanın. Daha fazla bilgi için bkz. Azure Active Directory Çoklu Oturum Açma.
Management Studio'ı veya Veri Araçları'Bağlan sunucuya (veya Bağlan Veritabanı Altyapısına) iletişim kutusunda, Kimlik Doğrulama kutusunda Azure Active Directory - Tümleşik 'i seçin. Parola gerekmez veya mevcut kimlik bilgileriniz bağlantı için sunulacak olduğundan girilebilir.

Seçenekler düğmesini seçin ve Bağlantı Özellikleri sayfasındaki Veritabanına Bağlan kutusuna bağlanmak istediğiniz kullanıcı veritabanının adını yazın. Daha fazla bilgi için SSMS 17.x ve 18.x için Bağlantı Özellikleri arasındaki farklar hakkında Multi-factor Azure AD kimlik doğrulaması makalesine bakın.

Active Directory parola kimlik doğrulaması
Azure AD yönetilen etki alanını kullanarak Bir Azure AD asıl adıyla bağlanırken bu yöntemi kullanın. Ayrıca, örneğin uzaktan çalışırken etki alanına erişimi olmayan federasyon hesapları için de kullanabilirsiniz.
SQL Veritabanı veya SQL Yönetilen Örneği'nden Azure AD bulut kimlik kullanıcılarının veya Azure AD hibrit kimliklerini kullananların kimliklerini doğrulamak için bu yöntemi kullanın. Bu yöntem, kendi kimlik bilgilerini Windows ancak yerel makineleri etki alanıyla katılmadı (örneğin, uzaktan erişim kullanarak) kullanıcıları destekler. Bu durumda, Windows kullanıcı etki alanı hesabını ve parolasını belirtebilirsiniz ve SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse.
Management Studio veya Veri Araçları'Bağlan sunucuya (veya Veritabanı Altyapısına Bağlan) iletişim kutusunda, Kimlik Doğrulama kutusunda Azure Active Directory - Parola'Azure Active Directory seçin.
Kullanıcı adı kutusuna kullanıcı adınızı Azure Active Directory biçiminde yazın domain.com. @ Kullanıcı adları, yönetilen bir Azure Active Directory veya yönetilen ya da federasyon etki alanındaki bir hesaptan bir hesap Azure Active Directory.
Parola kutusuna, yönetilen hesap veya yönetilen/Azure Active Directory hesabı için kullanıcı parolanızı yazın.

Seçenekler düğmesini seçin ve Bağlantı Özellikleri sayfasındaki Veritabanına Bağlan kutusuna bağlanmak istediğiniz kullanıcı veritabanının adını yazın. (Önceki seçenekte yer alan grafiğine bakın.)
Active Directory etkileşimli kimlik doğrulaması
Parola etkileşimli olarak istenen Multi-Factor Authentication (MFA) ile veya bu olmadan etkileşimli kimlik doğrulaması için bu yöntemi kullanın. Bu yöntem, SQL Veritabanı'daki veritabanında, SQL Yönetilen Örneği'Azure Synapse Azure AD yalnızca bulut kimlik kullanıcıları veya Azure AD hibrit kimlikleri kullananlar için kimlik doğrulaması yapmak için kullanılabilir.
daha fazla bilgi için bkz. SQL Veritabanı ve azure Synapse ile multi-factor azure AD kimlik doğrulaması kullanma (MFA için ssms desteği).
Bir istemci uygulamasından bağlanmak için bir Azure AD kimliği kullanma
aşağıdaki yordamlarda, bir istemci uygulamasından Azure AD kimliğiyle bir SQL Veritabanı nasıl bağlanacağı gösterilmektedir.
Active Directory tümleşik kimlik doğrulaması
tümleşik Windows kimlik doğrulamasını kullanmak için, etki alanı Active Directory Azure Active Directory ile federe olmalıdır veya doğrudan geçiş ya da parola karması kimlik doğrulaması için sorunsuz çoklu oturum açma için yapılandırılmış bir yönetilen etki alanı olmalıdır. daha fazla bilgi için bkz. kesintisiz çoklu oturum açma Azure Active Directory.
Not
tümleşik Windows kimlik doğrulaması için MSAL.NET (Microsoft. ıdentity. Client) , geçişli ve parola karması kimlik doğrulaması için sorunsuz çoklu oturum açma için desteklenmez.
Veritabanına bağlanan istemci uygulamanızın (veya bir hizmetin), bir kullanıcının etki alanı kimlik bilgileri altında etki alanına katılmış bir makinede çalışıyor olması gerekir.
Tümleşik kimlik doğrulaması ve bir Azure AD kimliği kullanarak bir veritabanına bağlanmak için, veritabanı bağlantı dizesindeki authentication anahtar sözcüğünün olarak ayarlanması gerekir Active Directory Integrated . Aşağıdaki C# kod örneği ADO .NET kullanır.
string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
bağlantı dizesi anahtar sözcüğü Integrated Security=True Azure SQL Veritabanı bağlanmak için desteklenmiyor. ODBC bağlantısı yaparken, boşlukları kaldırmanız ve kimlik doğrulamasını ' Activedirectoryıntegrated ' olarak ayarlamanız gerekir.
Active Directory parola kimlik doğrulaması
Yalnızca Azure AD bulutu kimlik Kullanıcı hesapları veya Azure AD karma kimlikleri kullanan bir veritabanına bağlanmak için, kimlik doğrulaması anahtar sözcüğü olarak ayarlanmalıdır Active Directory Password . Bağlantı dizesinin Kullanıcı KIMLIĞI/UID ve Password/PWD anahtar sözcükleri ve değerleri içermesi gerekir. Aşağıdaki C# kod örneği ADO .NET kullanır.
string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=bob@contoso.onmicrosoft.com; PWD=MyPassWord!";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
azure ad kimlik doğrulaması GitHub tanıtımı'nda bulunan tanıtım kodu örneklerini kullanarak azure ad kimlik doğrulama yöntemleri hakkında daha fazla bilgi edinin.
Azure AD belirteci
bu kimlik doğrulama yöntemi, azure AD 'den bir belirteç edinerek SQL Veritabanı, SQL yönetilen örneği veya azure Synapse ' deki veritabanına bağlanmak üzere, orta katmanlı hizmetlerin JSON Web belirteçleri (JWT) almasına olanak tanır. Bu yöntem, sertifika tabanlı kimlik doğrulaması kullanan hizmet kimlikleri, hizmet sorumluları ve uygulamalar dahil çeşitli uygulama senaryolarına izin vermez. Azure AD belirteç kimlik doğrulamasını kullanmak için dört temel adımı tamamlamalısınız:
- uygulamanızı Azure Active Directory kaydedin ve kodunuzun istemci kimliğini alın.
- Uygulamayı temsil eden bir veritabanı kullanıcısı oluşturun. (Adım 6 ' da daha önce tamamlandı.)
- İstemci bilgisayarda bir sertifika oluşturma uygulamayı çalıştırır.
- Sertifikayı uygulamanız için bir anahtar olarak ekleyin.
Örnek bağlantı dizesi:
string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();
daha fazla bilgi için bkz. güvenlik blogu SQL Server. Sertifika ekleme hakkında daha fazla bilgi için, bkz. Azure Active Directory Sertifika tabanlı kimlik doğrulaması ile çalışmaya başlama.
sqlcmd
Aşağıdaki deyimler, Indirme merkezindenerişilebilen sqlcmd sürüm 13,1 ' i kullanarak bağlanır.
Not
sqlcmd``-Gkomutuyla sistem kimlikleriyle birlikte çalışmaz ve Kullanıcı sorumlusu oturum açması gerekir.
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30
Azure AD kimlik doğrulaması sorunlarını giderme
Azure AD kimlik doğrulamasıyla ilgili sorunları gidermeye yönelik yönergeler aşağıdaki blogda bulunabilir: https://techcommunity.microsoft.com/t5/azure-sql-database/troubleshooting-problems-related-to-azure-ad-authentication-with/ba-p/1062991
Sonraki adımlar
- SQL Veritabanı oturum açma bilgileri, kullanıcılar, veritabanı rolleri ve izinler için bir genel bakış için, bkz. oturum açmalar, kullanıcılar, veritabanı rolleri ve kullanıcı hesapları.
- Veritabanı sorumluları hakkında daha fazla bilgi için bkz. Sorumlular.
- Veritabanı rolleri hakkında daha fazla bilgi için bkz. Veritabanı rolleri.
- SQL Veritabanındaki güvenlik duvarı kuralları hakkında daha fazla bilgi için bkz. SQL Veritabanı güvenlik duvarı kuralları.
- Azure AD Konuk kullanıcısını Azure AD yöneticisi olarak ayarlama hakkında daha fazla bilgi için bkz. Azure AD Konuk kullanıcıları oluşturma ve Azure AD yöneticisi olarak ayarlama.
- azure SQL ile sorumluların nasıl kullanılacağı hakkında daha fazla bilgi için bkz. azure ad uygulamaları kullanarak azure ad kullanıcıları oluşturma