Azure SQL ile Azure AD kimlik doğrulamasını yapılandırma ve yönetme

Şunlar 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şturup doldurma ve ardından Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics ile Azure AD kullanma adımları gösterilmektedir. Genel bakış için bkz. Azure Active Directory kimlik doğrulaması.

kimlik doğrulama yöntemlerini Azure AD

Azure AD kimlik doğrulaması aşağıdaki kimlik doğrulama yöntemlerini destekler:

  • Azure AD yalnızca bulut kimlikleri
  • Azure AD destekleyen karma kimlikler:
    • Sorunsuz çoklu oturum açma (SSO) ile birlikte iki seçenek içeren bulut kimlik doğrulaması
      • parola karması kimlik doğrulamasını Azure AD
      • Geçiş kimlik doğrulamasını Azure AD
    • Federasyon kimlik doğrulaması

Azure AD kimlik doğrulama yöntemleri ve hangisinin seçileceği hakkında daha fazla bilgi için bkz. Azure Active Directory karma kimlik çözümünüz için doğru kimlik doğrulama yöntemini seçme.

Karma kimlikler, kurulum ve eşitleme Azure AD hakkında daha fazla bilgi için bkz:

Azure AD örneği oluşturma ve doldurma

bir Azure AD örneği oluşturun ve bunu kullanıcılar ve gruplarla doldurun. Azure AD ilk Azure AD yönetilen etki alanı olabilir. Azure AD, Azure AD ile birleştirilmiş bir şirket içi Active Directory Etki Alanı Hizmetleri de olabilir.

Daha fazla bilgi için bkz.

Azure Active Directory’ye bir Azure aboneliğini ekleme veya ilişkilendirme

  1. Dizini, veritabanını barındıran Azure aboneliği için güvenilir bir dizin haline getirerek Azure aboneliğinizi Azure Active Directory ile ilişkilendirin. Ayrıntılar için bkz. Azure Active Directory kiracınıza Azure aboneliğini ilişkilendirme veya ekleme.

  2. etki alanıyla ilişkilendirilmiş 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 ile Azure aboneliği ilişkilendirme veya ekleme.

SQL Veritabanı'da bir sunucuyla yönetici Azure AD

Azure'daki her sunucu (SQL Veritabanı veya Azure Synapse barındıran) tüm sunucunun yöneticisi olan tek bir sunucu yöneticisi hesabıyla başlar. Azure AD hesabı olarak ikinci bir yönetici hesabı oluşturun. Bu sorumlu, sunucunun asıl veritabanında bir kapsanan veritabanı kullanıcısı olarak oluşturulur. Yönetici hesapları, her kullanıcı veritabanındaki db_owner rolünün üyeleridir ve her kullanıcı veritabanını dbo kullanıcısı olarak girin. Yönetici hesapları hakkında daha fazla bilgi için bkz. Veritabanlarını ve Oturum Açma Bilgilerini Yönetme.

Azure Active Directory'yi coğrafi çoğaltma ile kullanırken, Azure Active Directory yöneticisinin hem birincil hem de ikincil sunucular için yapılandırılması gerekir. Bir sunucunun Azure Active Directory yöneticisi yoksa, Azure Active Directory oturum açar ve kullanıcılar sunucuya hatası alır Cannot connect .

Not

bir Azure AD hesabını (sunucu yöneticisi hesabı dahil) temel almamış kullanıcılar, önerilen veritabanı kullanıcılarını Azure AD ile doğrulama izinleri olmadığından Azure AD tabanlı kullanıcılar oluşturamaz.

Azure AD yöneticisi sağlama (SQL Yönetilen Örneği)

Önemli

Bu adımları yalnızca bir Azure SQL Yönetilen Örneği sağlanıyorsanız uygulayın. Bu işlem yalnızca Azure AD'da Genel Yönetici veya Ayrıcalıklı Rol Yöneticisi tarafından yürütülebilir.

Dizin Okuyucuları rolünü Azure AD bir gruba atayabilirsiniz. Grup sahipleri daha sonra yönetilen örnek kimliğini bu grubun üyesi olarak ekleyebilir ve bu sayede SQL Yönetilen Örneği için Azure AD yönetici sağlayabilirsiniz. Bu özellik hakkında daha fazla bilgi için bkz. Azure SQL için Azure Active Directory'de Dizin Okuyucuları rolü.

SQL Yönetilen Örneği güvenlik grubu üyeliği veya yeni kullanıcı oluşturma yoluyla kullanıcıların kimlik doğrulaması gibi görevleri başarıyla yerine getirmek için Azure AD okumak için izinlere sahip olması gerekir. Bunun çalışması için SQL Yönetilen Örneği Azure AD okuma izni vermeniz gerekir. Bunu Azure portal veya PowerShell kullanarak yapabilirsiniz.

Azure portal

Azure portal kullanarak SQL Yönetilen Örneği Azure AD okuma izni vermek için Azure AD'da Genel Yönetici olarak oturum açın ve şu adımları izleyin:

  1. Azure portal sağ üst köşede hesabınızı seçin ve ardından Dizinleri değiştir'i seçerek hangi Active Directory'nin şu anda active directory'niz olduğunu onaylayın. Gerekirse dizinleri değiştirin.

    Dizininizin nerede değiştirileceğine ilişkin Azure portal ekran görüntüsü

  2. Varsayılan Azure AD olarak doğru Active Directory'yi seçin.

    Bu adım, Active Directory ile ilişkilendirilmiş aboneliği SQL Yönetilen Örneği bağlar ve hem Azure AD örneği hem de SQL Yönetilen Örneği için aynı aboneliğin kullanıldığından emin olur.

  3. Azure AD tümleştirmesi için kullanmak istediğiniz SQL Yönetilen Örneği gidin.

    Seçilen SQL yönetilen örneği için active directory yönetici sayfasının açık olduğunu gösteren Azure portal ekran görüntüsü.

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

    Active Directory'ye erişmek için SQL yönetilen örneğine izin verme iletişim kutusunun ekran görüntüsü. İzin ver düğmesi seçilidir.

  5. İşlem başarılı olduktan sonra sağ üst köşede aşağıdaki bildirim gösterilir:

    Yönetilen örnek için Active Directory okuma izinlerinin başarıyla güncelleştirildiğini onaylayan bildirimin ekran görüntüsü.

  6. Artık SQL Yönetilen Örneği için Azure AD yöneticinizi seçebilirsiniz. Bunun için Active Directory yönetici sayfasında Yönetici komutunu ayarla'yı seçin.

    Seçili SQL yönetilen örneğinin Active Directory yönetici sayfasında vurgulanan Yöneticiyi ayarla komutunu gösteren ekran görüntüsü.

  7. yönetici Azure AD 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'nizin tüm üyelerini ve gruplarını gösterir. Azure AD yöneticileri olarak desteklenmediklerinden gri renkte gösterilen kullanıcılar veya gruplar seçilemiyor. desteklenen yöneticilerin listesine Azure AD Özellikler ve Sınırlamalar bölümüne bakın. Azure rol tabanlı erişim denetimi (Azure RBAC) yalnızca Azure portal için geçerlidir ve SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse yayılmaz.

    Azure Active Directory yöneticisi ekleme

  8. Active Directory yönetici sayfasının üst kısmında Kaydet'i seçin.

    Üst satırda Yöneticiyi ayarla ve Yöneticiyi kaldır düğmelerinin yanındaki Kaydet düğmesinin olduğu Active Directory yönetici sayfasının ekran görüntüsü.

    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.

    Azure AD kullanıcılar ve gruplar için, yönetici adının yanında Nesne Kimliği görüntülenir. Uygulamalar (hizmet sorumluları) için Uygulama Kimliği görüntülenir.

SQL Yönetilen Örneği için bir Azure AD yöneticisi sağladıktan sonra CREATE LOGIN söz dizimi ile Azure AD sunucu sorumluları (oturum açma bilgileri) oluşturmaya başlayabilirsiniz. Daha fazla bilgi için bkz. SQL Yönetilen Örneği genel bakış.

İpucu

Daha sonra bir Yönetici kaldırmak için Active Directory yönetici sayfasının üst kısmında Yöneticiyi kaldır'ı ve ardından Kaydet'i seçin.

PowerShell

PowerShell kullanarak SQL Yönetilen Örneği Azure AD okuma izni 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 Örneği için PowerShell

PowerShell cmdlet'lerini çalıştırmak için Azure PowerShell yüklü ve çalışır durumda 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ü hala Azure SQL Yönetilen Örneği tarafından desteklenmektedir ancak gelecekteki tüm geliştirmeler Az.Sql modülüne yöneliktir. AzureRM modülü en az Aralık 2020'ye kadar hata düzeltmeleri almaya devam edecektir. Az modülündeki ve AzureRm modüllerindeki komutların bağımsız değişkenleri önemli ölçüde aynıdır. Uyumlulukları hakkında daha fazla bilgi için bkz. Yeni Azure PowerShell Az modülüne giriş.

Azure AD yöneticisi sağlamak için aşağıdaki Azure PowerShell komutlarını yürütebilirsiniz:

  • Connect-AzAccount
  • Select-AzSubscription

SQL Yönetilen Örneği için Azure AD yöneticisini sağlamak ve yönetmek için kullanılan cmdlet'ler aşağıdaki tabloda listelenmiştir:

Cmdlet adı Açıklama
Set-AzSqlInstanceActiveDirectoryAdministrator Geçerli abonelikteki SQL Yönetilen Örneği için bir Azure AD yöneticisi sağlar. (Geçerli abonelikten olmalıdır)
Remove-AzSqlInstanceActiveDirectoryAdministrator Geçerli abonelikteki SQL Yönetilen Örneği Azure AD yöneticisini kaldırır.
Get-AzSqlInstanceActiveDirectoryAdministrator Geçerli abonelikteki SQL Yönetilen Örneği için bir Azure AD yöneticisi hakkındaki bilgileri döndürür.

Aşağıdaki komut, ResourceGroup01 adlı bir kaynak grubuyla ilişkili ManagedInstance01 adlı SQL Yönetilen Örneği için Azure AD yöneticisi hakkında bilgi alır.

Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"

Aşağıdaki komut, ManagedInstance01 adlı SQL Yönetilen Örneği için DBAs adlı bir Azure AD yönetici grubu sağlar. Bu sunucu ResourceGroup01 kaynak grubuyla ilişkilendirildi.

Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"

Aşağıdaki komut ResourceGroup01 kaynak grubuyla ilişkili ManagedInstanceName01 adlı SQL Yönetilen Örneği Azure AD yöneticisini kaldırır.

Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru

Sağlama Azure AD yöneticisi (SQL Veritabanı)

Önemli

Bu adımları yalnızca SQL Veritabanı veya Azure Synapse için bir sunucu sağladığınızda uygulayın.

Aşağıdaki iki yordamda, Azure portal ve PowerShell kullanarak sunucunuz için Azure Active Directory yöneticisi sağlama işlemi gösterilir.

Azure portal

  1. Azure portal sağ üst köşedeki bağlantınızı seçerek olası Etkin Dizinlerin listesini açın. Varsayılan Azure AD olarak doğru Active Directory'yi seçin. Bu adım, hem Azure AD hem de sunucu için aynı aboneliğin kullanıldığından emin olmak için abonelikle ilişkilendirilmiş Active Directory'yi sunucuya bağlar.

  2. SQL Server'ı arayın ve seçin.

    SQL sunucularını arama ve seçme

    Not

    Bu sayfada, SQL sunucularını seçmeden önce kategoriyi sık kullanılanlara eklemek için adın yanındaki yıldızı seçebilir ve sol gezinti çubuğuna SQL sunucuları ekleyebilirsiniz.

  3. SQL Server sayfasında Active Directory yöneticisi'ni seçin.

  4. Active Directory yönetici sayfasında Yönetici ayarla'yı seçin.

    SQL sunucuları Active Directory yöneticisini ayarladı

  5. 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'nizin tüm üyelerini ve gruplarını gösterir. Gri gösterilen kullanıcılar veya gruplar, Azure AD yöneticileri olarak desteklenmedikleri için seçilemez. (SQL Veritabanı veya Azure Synapse ile kimlik doğrulaması için Azure Active Directory Kimlik Doğrulamasını kullanma'nın Azure ADÖzellikler ve Sınırlamalar bölümünde desteklenen yöneticilerin listesine bakın.) Azure rol tabanlı erişim denetimi (Azure RBAC) yalnızca portal için geçerlidir ve SQL Server yayılmaz.

    Azure Active Directory yöneticisini seçin

  6. Active Directory yönetici sayfasının üst kısmında Kaydet'i seçin.

    yöneticiyi kaydet

    Azure AD kullanıcı ve gruplar için, yönetici adının yanında Nesne Kimliği 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 Active Directory yönetici kutusunda görünür.

Not

Azure AD yöneticisini ayarlarken, yeni yönetici adı (kullanıcı veya grup) sanal ana veritabanında sunucu kimlik doğrulaması kullanıcısı olarak zaten bulunamaz. Varsa, Azure AD yönetici kurulumu başarısız olur; oluşturma işlemi geri alınır ve böyle bir yöneticinin (ad) zaten var olduğunu gösterir. Böyle bir sunucu kimlik doğrulaması kullanıcısı Azure AD parçası olmadığından, Azure AD kimlik doğrulaması kullanarak sunucuya bağlanma çabası başarısız olur.

Daha sonra bir Yönetici kaldırmak için Active Directory yönetici sayfasının üst kısmında Yöneticiyi kaldır'ı ve ardından Kaydet'i seçin.

SQL Veritabanı ve Azure Synapse için PowerShell

PowerShell cmdlet'lerini çalıştırmak için Azure PowerShell yüklü ve çalışır durumda olması gerekir. Ayrıntılı bilgi için bkz. Azure PowerShell'i yükleme ve yapılandırma. Azure AD yöneticisi sağlamak için aşağıdaki Azure PowerShell komutlarını yürütebilirsiniz:

  • Connect-AzAccount
  • Select-AzSubscription

SQL Veritabanı ve Azure Synapse için Azure AD yöneticisi sağlamak ve yönetmek için kullanılan cmdlet'ler:

Cmdlet adı Açıklama
Set-AzSqlServerActiveDirectoryAdministrator SQL Veritabanı veya Azure Synapse barındıran sunucu için bir Azure Active Directory yöneticisi sağlar. (Geçerli abonelikten olmalıdır)
Remove-AzSqlServerActiveDirectoryAdministrator SQL Veritabanı veya Azure Synapse barındıran sunucunun Azure Active Directory yöneticisini kaldırır.
Get-AzSqlServerActiveDirectoryAdministrator Şu anda SQL Veritabanı veya Azure Synapse barındıran sunucu için yapılandırılmış bir Azure Active Directory yöneticisi hakkındaki bilgileri döndürür.

Bu komutların her biri için daha fazla bilgi görmek için PowerShell komutu get-help komutunu kullanın. Örneğin, get-help Set-AzSqlServerActiveDirectoryAdministrator.

Aşağıdaki betik, Group-23 adlı bir kaynak grubundaki demo_server sunucusu için DBA_Group (nesne kimliği40b79501-b343-44ed-9ce7-da4c8cc7353f) 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 komutuSet-AzSqlServerActiveDirectoryAdministrator, desteklenmeyen kullanıcılar için Azure AD yöneticileri sağlamanızı engellemez. Desteklenmeyen bir kullanıcı sağlanabilir, ancak veritabanına bağlanılamaz.

Aşağıdaki örnekte isteğe bağlı ObjectID kullanılı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. ObjectID ve DisplayName değerlerini almak için Klasik Azure Portalı Active Directory bölümünü kullanın ve bir kullanıcı veya grubun özelliklerini görüntüleyin.

Aşağıdaki örnek, sunucunun geçerli Azure AD yöneticisi hakkında bilgi 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 API'lerini kullanarak bir Azure Active Directory Yöneticisi de sağlayabilirsiniz. Daha fazla bilgi için bkz. Azure SQL Veritabanı için Azure SQL Veritabanı İşlemleri için Hizmet Yönetimi REST API Başvurusu ve İşlemleri

İstemci bilgisayarlarınızı yapılandırma

Not

System.Data.SqlClient , kullanım dışı bırakılacak Azure Active Directory Kimlik Doğrulama Kitaplığı'nı (ADAL) kullanır. Azure Active Directory kimlik doğrulaması için System.Data.SqlClient ad alanını kullanıyorsanız, uygulamaları Microsoft.Data.SqlClient'a ve Microsoft Authentication Library'ye (MSAL) geçirin. SqlClient ile Azure AD kimlik doğrulaması kullanma hakkında daha fazla bilgi için bkz. SqlClient ile Azure Active Directory kimlik doğrulamasını kullanma.

SSMS ve SSDT hala Azure Active Directory Kimlik Doğrulama Kitaplığı'nı (ADAL) kullanır. UygulamalarınızdaADAL.DLLkullanmaya devam etmek istiyorsanız, en son ADAL.DLL kitaplığını içeren en son SSMS, ODBC ve OLE DB sürücüsünü yüklemek için bu bölümdeki bağlantıları kullanabilirsiniz.

Uygulamalarınızın veya kullanıcılarınızın Azure AD kimlikleri kullanarak SQL Veritabanı veya Azure Synapse bağlandığı tüm istemci makinelerinde aşağıdaki yazılımı yüklemeniz gerekir:

Bu gereksinimleri şu şekilde karşılayabilirsiniz:

Azure AD kimliklerine eşlenen bağımsız kullanıcılar oluşturma

SQL Yönetilen Örneği Azure AD sunucu sorumlularını (oturum açma bilgileri) desteklediği için, bağımsız veritabanı kullanıcılarının kullanılması gerekmez. 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, SQL Yönetilen Örneği bağımsız veritabanı kullanıcısı yerine Azure AD sunucu oturum açma bilgilerini kullanarak kimlik doğrulaması yapabileceğiniz anlamına gelir. Daha fazla bilgi için bkz. SQL Yönetilen Örneği genel bakış. Azure AD sunucu sorumluları (oturum açma bilgileri) oluşturma söz dizimi için bkz. CREATE LOGIN.

Ancak, SQL Veritabanı ve Azure Synapse ile Azure Active Directory kimlik doğrulaması kullanmak için Azure AD kimliğine dayalı bağımsız veritabanı kullanıcıları kullanılması gerekir. Kapsanan veritabanı kullanıcısının ana veritabanında oturum açma bilgileri yoktur ve veritabanıyla ilişkilendirilmiş Azure AD bir kimlikle eşler. Azure AD kimliği tek bir kullanıcı hesabı veya grup olabilir. Kapsanan veritabanı kullanıcıları hakkında daha fazla bilgi için bkz. Bağımsız Veritabanı Kullanıcıları- Veritabanınızı Taşınabilir Hale Getirme.

Not

Veritabanı kullanıcıları (yöneticiler dışında) Azure portal kullanılarak oluşturulamaz. Azure rolleri SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse veritabanına yayılmaz. Azure rolleri, Azure Kaynaklarını yönetmek için kullanılır ve veritabanı izinlerine uygulanmaz. Örneğin, SQL Server Katkıda Bulunan rolü SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse veritabanına bağlanma erişimi vermez. Erişim izni transact-SQL deyimleri kullanılarak doğrudan veritabanında verilmelidir.

Uyarı

T-SQL'e CREATE LOGIN kullanıcı adı olarak eklendiğinde ve CREATE USER deyimlerinde iki nokta üst üste : veya ve & gibi özel karakterler desteklenmez.

Önemli

2048'den fazla Azure AD güvenlik grubunun üyesi olan Azure AD kullanıcıların ve hizmet sorumlularının (Azure AD uygulamalar) SQL Veritabanı, Yönetilen Örnek veya Azure Synapse veritabanında oturum açması desteklenmez.

Azure AD tabanlı bağımsız veritabanı kullanıcısı oluşturmak için (veritabanının sahibi olan sunucu yöneticisi dışında), veritabanına Azure AD kimliğiyle bağlanın ve en azından ALTER ANY USER iznine sahip bir kullanıcı olarak. Ardından aşağıdaki Transact-SQL söz dizimini kullanın:

CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;

Azure_AD_principal_name, Azure AD bir kullanıcının 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ısını temsil eden bir bağımsız 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 bağımsız veritabanı kullanıcısı oluşturmak için güvenlik grubunun görünen adını sağlayın:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Azure AD belirteci kullanarak bağlanan bir uygulamayı temsil eden bağımsız veritabanı kullanıcısı oluşturmak için:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Not

Bu komut, oturum açan kullanıcı adına SQL erişiminin Azure AD ("dış sağlayıcı") gerektirir. Bazen, Azure AD SQL'e geri bir özel durum döndürmesine neden olan koşullar ortaya çıkar. Bu gibi durumlarda kullanıcı, Azure AD özgü hata iletisini içermesi gereken SQL hatası 33134'i görür. Çoğu zaman hata, erişimin reddedildiğini veya kullanıcının kaynağa erişmek için MFA'ya kaydolması gerektiğini ya da birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini söyler. İlk iki durumda, sorun genellikle kullanıcının Azure AD 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 ilkelerini '00000003-0000-0000-c000-0000-0000000000000' uygulamasına (Microsoft Graph API uygulama kimliği) erişime izin verecek şekilde güncelleştirmek sorunu çözmelidir. Hatanın birinci taraf uygulamalar arasındaki erişimin ön yetkilendirme yoluyla işlenmesi gerektiğini belirtmesi durumunda, 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.

İpucu

Azure aboneliğinizle ilişkili Azure Active Directory dışında bir Azure Active Directory'den doğrudan kullanıcı oluşturamazsınız. Ancak, ilişkili Active Directory'de (dış kullanıcılar olarak bilinir) içeri aktarılan diğer Etkin Dizinlerin üyeleri, kiracı Active Directory'deki bir Active Directory grubuna eklenebilir. Bu AD grubu için bağımsız veritabanı kullanıcısı oluşturarak, dış Active Directory'den kullanıcılar SQL Veritabanı erişebilir.

Azure Active Directory kimliklerini temel alan bağımsız veritabanı kullanıcıları oluşturma hakkında daha fazla bilgi için bkz. CREATE USER (Transact-SQL).

Not

Sunucunun Azure Active Directory yöneticisinin kaldırılması, Azure AD kimlik doğrulaması kullanıcılarının sunucuya bağlanmasını engeller. Gerekirse, kullanılamayan Azure AD kullanıcıları bir SQL Veritabanı yöneticisi tarafından el ile bırakılabilir.

Not

Bağlantı Zaman Aşımı Süresi Doldu iletisini alırsanız, bağlantı dizesinin TransparentNetworkIPResolution parametresini false olarak ayarlamanız gerekebilir. Daha fazla bilgi için bkz. .NET Framework 4.6.1 - TransparentNetworkIPResolution ile bağlantı zaman aşımı sorunu.

Veritabanı kullanıcısı oluşturduğunuzda, bu kullanıcı CONNECT iznini alır ve bu veritabanına PUBLIC rolünün bir üyesi olarak bağlanabilir. Başlangıçta, kullanıcıya sağlanan tek izinler PUBLIC rolüne verilen izinler veya üyesi olduğu Azure AD gruplarına verilen izinlerdir. Azure AD tabanlı bir bağımsız veritabanı kullanıcısı sağladıktan sonra, kullanıcıya başka bir kullanıcı türüne izin vermekle aynı şekilde ek izinler vekleyebilirsiniz. Genellikle veritabanı rollerine izinler verin ve kullanıcıları rollere ekleyin. Daha fazla bilgi için bkz. Veritabanı Altyapısı İzin Temelleri. Özel SQL Veritabanı rolleri hakkında daha fazla bilgi için bkz. Azure SQL Veritabanında Veritabanlarını ve Oturum Açma Bilgilerini Yönetme. Yönetilen bir etki alanına dış kullanıcı olarak aktarılan 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 (EXTERNAL_USER) türüyle ve X (EXTERNAL_GROUPS) türündeki gruplar için işaretlenir. Daha fazla bilgi için bkz. sys.database_principals.

SSMS veya SSDT kullanarak veritabanına bağlanma

Azure AD yöneticisinin düzgün ayarlandığını onaylamak için Azure AD yönetici hesabını kullanarak ana veritabanına bağlanın. Azure AD tabanlı bir bağımsız veritabanı kullanıcısı (veritabanının sahibi olan sunucu yöneticisi dışında) sağlamak için veritabanına erişimi olan bir Azure AD kimliğiyle veritabanına bağlanın.

Önemli

Azure Active Directory kimlik doğrulaması desteği, 2016'dan başlayarak SQL Server Management Studio (SSMS) ve 2015'te başlayan SQL Server Veri Araçları ile kullanılabilir. SSMS'nin Ağustos 2016 sürümü, yöneticilerin telefon araması, kısa mesaj, pinli akıllı kartlar veya mobil uygulama bildirimi kullanarak Multi-Factor Authentication gerektirmesine olanak tanıyan Active Directory Evrensel Kimlik Doğrulaması desteğini 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 Server Veritabanı Araçları'nı kullanarak Azure AD kimlikle SQL Veritabanı nasıl bağlanabileceğinizi gösterir.

Active Directory tümleşik kimlik doğrulaması

Federasyon etki alanından Azure Active Directory kimlik bilgilerinizi 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ını kullanarak Windows'ta oturum açtıysanız bu yöntemi kullanın. Daha fazla bilgi için bkz. Azure Active Directory Sorunsuz Çoklu Oturum Açma.

  1. Management Studio veya Veri Araçları'nı başlatın ve Sunucuya Bağlan (veya Veritabanı Altyapısına Bağlan) iletişim kutusunda , Kimlik Doğrulaması kutusunda Azure Active Directory - Tümleşik'i seçin. Bağlantı için mevcut kimlik bilgileriniz sunulacağından parola gerekmez veya girilebilir.

    AD Tümleşik Kimlik Doğrulaması'nın seçilmesi

  2. 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 çok faktörlü Azure AD kimlik doğrulaması makalesine bakın.

    Veritabanı adını seçin

Active Directory parola kimlik doğrulaması

Yönetilen Azure AD etki alanını kullanarak bir Azure AD asıl adıyla bağlanırken bu yöntemi kullanın. Ö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 Azure AD yalnızca bulut kimlik kullanıcılarıyla veya Azure AD karma kimlik kullananlarla veritabanında kimlik doğrulaması yapmak için bu yöntemi kullanın. Bu yöntem, Windows kimlik bilgilerini kullanmak isteyen kullanıcıları destekler, ancak yerel makineleri etki alanına katılmaz (örneğin, uzaktan erişim kullanarak). Bu durumda, bir Windows kullanıcısı etki alanı hesabını ve parolasını belirtebilir ve SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse veritabanında kimlik doğrulaması yapabilir.

  1. Management Studio veya Veri Araçları'nı başlatın ve Sunucuya Bağlan (veya Veritabanı Altyapısına Bağlan) iletişim kutusunda , Kimlik Doğrulaması kutusunda Azure Active Directory - Parola'yı seçin.

  2. Kullanıcı adı kutusuna Azure Active Directory kullanıcı adınızı biçiminde username@domain.comyazın. Kullanıcı adları, Azure Active Directory'den bir hesap veya Azure Active Directory ile yönetilen veya federasyon etki alanından bir hesap olmalıdır.

  3. Parola kutusuna Azure Active Directory hesabı veya yönetilen/federasyon etki alanı hesabı için kullanıcı parolanızı yazın.

    AD Parola Kimlik Doğrulaması'nın seçilmesi

  4. 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çenekteki grafiğe bakın.)

Active Directory etkileşimli kimlik doğrulaması

Multi-Factor Authentication (MFA) ile veya parolası etkileşimli olarak istenerek olmadan etkileşimli kimlik doğrulaması için bu yöntemi kullanın. Bu yöntem, SQL Veritabanı, SQL Yönetilen Örneği ve Azure Synapse Azure AD bulut kimlik kullanıcıları veya Azure AD karma kimlik kullananlar için veritabanında kimlik doğrulaması yapmak için kullanılabilir.

Daha fazla bilgi için bkz. SQL Veritabanı ve Azure Synapse ile çok faktörlü Azure AD kimlik doğrulamasını kullanma (MFA için SSMS desteği).

İstemci uygulamasından bağlanmak için Azure AD kimliği kullanma

Aşağıdaki yordamlar, bir istemci uygulamasından Azure AD kimliğiyle bir SQL Veritabanı nasıl bağlanabileceğinizi gösterir.

Active Directory tümleşik kimlik doğrulaması

Tümleşik Windows kimlik doğrulamasını kullanmak için, etki alanınızın Active Directory'sini Azure Active Directory ile birleştirilmiş veya geçiş veya 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. Azure Active Directory Sorunsuz Çoklu Oturum Açma.

Veritabanına bağlanan istemci uygulamanız (veya bir hizmet), kullanıcının etki alanı kimlik bilgileri altında etki alanına katılmış bir makinede çalışıyor olmalıdır.

Tümleşik kimlik doğrulaması ve Azure AD kimliği kullanarak veritabanına bağlanmak için veritabanı bağlantı dizesindeki Authentication anahtar sözcüğü olarak Active Directory Integratedayarlanmalıdır. 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ına bağlanmak için desteklenmez. ODBC bağlantısı kurarken boşlukları kaldırmanız ve Kimlik Doğrulaması'nı 'ActiveDirectoryIntegrated' olarak ayarlamanız gerekir.

Active Directory parola kimlik doğrulaması

Yalnızca bulut kimlikli Azure AD kullanıcı hesaplarını veya karma kimlikleri Azure AD kullananları kullanarak bir veritabanına bağlanmak için Kimlik doğrulama anahtar sözcüğü olarak Active Directory Passwordayarlanmalıdır. Bağlantı dizesi Kullanıcı Kimliği/UID ve Parola/PWD anahtar sözcükleri ve değerleri içermelidir. 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 Authentication 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, orta katman hizmetlerinin Azure AD belirteç alarak SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse veritabanına bağlanmak için 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 gibi çeşitli uygulama senaryolarını etkinleştirir. Azure AD belirteci kimlik doğrulamasını kullanmak için dört temel adımı tamamlamanız gerekir:

  1. Uygulamanızı Azure Active Directory'ye kaydedin ve kodunuzun istemci kimliğini alın.
  2. Uygulamayı temsil eden bir veritabanı kullanıcısı oluşturun. (6. adımda daha önce tamamlandı.)
  3. uygulamayı çalıştıran istemci bilgisayarda bir sertifika oluşturun.
  4. Sertifikayı uygulamanız için 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. SQL Server Güvenlik Blogu. Sertifika ekleme hakkında bilgi için bkz. Azure Active Directory'de sertifika tabanlı kimlik doğrulamasını kullanmaya başlama.

sqlcmd

Aşağıdaki deyimler, sqlcmd'nin İndirme Merkezi'nden edinilebilen 13.1 sürümünü kullanarak bağlanın.

Not

sqlcmd-G komutu sistem kimlikleriyle çalışmaz ve kullanıcı sorumlusu oturum açma bilgilerini gerektirir.

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ı giderme yönergeleri 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