Azure SQL ile Microsoft Entra 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, Microsoft Entra kiracısı oluşturma ve doldurma ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics ile Microsoft Entra Id (eski adıYla Azure Active Directory) kullanma adımları gösterilmektedir. Genel bakış için bkz . Microsoft Entra kimlik doğrulaması.

Not

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Microsoft Entra kimlik doğrulama yöntemleri

Microsoft Entra ID aşağıdaki kimlik doğrulama yöntemlerini destekler:

  • Microsoft Entra yalnızca bulut kimlikleri
  • Destekleyen Microsoft Entra karma kimlikleri:
    • Sorunsuz çoklu oturum açma (SSO) ile birlikte iki seçenekle bulut kimlik doğrulaması
      • Microsoft Entra parola karması kimlik doğrulaması
      • Microsoft Entra doğrudan kimlik doğrulaması
    • Federasyon kimlik doğrulaması

Microsoft Entra kimlik doğrulama yöntemleri ve hangisini seçeceğiniz hakkında daha fazla bilgi için bkz . Microsoft Entra karma kimlik çözümünüz için doğru kimlik doğrulama yöntemini seçme.

Microsoft Entra karma kimlikleri, kurulumu ve eşitlemesi hakkında daha fazla bilgi için bkz:

Microsoft Entra kiracısı oluşturma ve doldurma

Bir Microsoft Entra kiracısı oluşturun ve bunu kullanıcılar ve gruplarla doldurun. Microsoft Entra kiracıları tamamen Azure içinde yönetilebilir veya bir şirket içi Active Directory Etki Alanı Hizmeti federasyonu için kullanılabilir.

Daha fazla bilgi için bkz.

Microsoft Entra Id ile Azure aboneliği ilişkilendirme veya ekleme

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

  2. Etki alanıyla ilişkilendirilmiş aboneliğe geçmek için Azure portalında dizin değiştiriciyi kullanın.

    Önemli

    Her Azure aboneliğinin bir Microsoft Entra örneğiyle güven ilişkisi vardır. Kullanıcıların, hizmetlerin ve cihazların kimliğini doğrulamak için bu dizine güvenir. Birden çok abonelik aynı dizine güvenebilir ancak bir abonelik yalnızca bir dizine güvenir. Bir aboneliğin dizinle olan bu güven ilişkisi, Azure'daki diğer tüm kaynaklara (web siteleri, veritabanları vb.) sahip olan ve aboneliğin alt kaynaklarına benzeyen bir abonelikle aynı değildir. Bir aboneliğin süresi dolarsa abonelikle ilişkili bu diğer kaynaklara erişim de durdurulur. Ancak, dizin Azure'da kalır ve başka bir aboneliği bu dizinle ilişkilendirebilir ve 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üvenilir ilişki hakkında daha fazla bilgi edinmek için bkz . Microsoft Entra Id ile Azure aboneliği ilişkilendirme veya ekleme.

SQL Veritabanı'de bir sunucu ile Microsoft Entra yöneticisi

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

Coğrafi çoğaltma ile Microsoft Entra Kimliği kullanılırken Microsoft Entra yöneticisinin hem birincil hem de ikincil sunucular için yapılandırılması gerekir. Bir sunucunun Microsoft Entra yöneticisi yoksa, Microsoft Entra oturum açar ve kullanıcılar bir sunucu hatası alır Cannot connect .

Not

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

Microsoft Entra yöneticisi sağlama (SQL Yönetilen Örneği)

Önemli

Yalnızca bir Azure SQL Yönetilen Örneği sağlarken bu adımları izleyin. Bu işlem yalnızca Genel Yönetici istrator veya Microsoft Entra Id'de Privileged Role Yönetici istrator tarafından yürütülebilir.

Dizin Okuyucuları rolünü Microsoft Entra Id'deki 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 bir Microsoft Entra yöneticisi sağlayabilirsiniz. Bu özellik hakkında daha fazla bilgi için bkz . Azure SQL için Microsoft Entra'da 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 gerçekleştirmek için Microsoft Entra Id okuma izni gerekir. Bunun işe yaraması için SQL Yönetilen Örneği Microsoft Entra Id okuma izni vermelisiniz. Bunu Azure portalını veya PowerShell'i kullanarak yapabilirsiniz.

Azure portal

Azure portalını kullanarak Microsoft Entra ID'ye SQL Yönetilen Örneği okuma izinleri vermek için Genel Yönetici istrator olarak oturum açın ve şu adımları izleyin:

  1. Azure portalında, sağ üst köşedeki hesabınızı seçin ve ardından Geçerli dizininizin hangi dizin olduğunu onaylamak için Dizinleri değiştir'i seçin. Gerekirse dizinleri değiştirin.

    Screenshot of the Azure portal showing where to switch your directory.

  2. Geçerli dizin olarak doğru Microsoft Entra dizinini seçin.

    Bu adım, Microsoft Entra Id ile ilişkili aboneliği SQL Yönetilen Örneği bağlar ve Microsoft Entra kiracısının ve SQL Yönetilen Örneği aynı aboneliği kullanmasını sağlar.

  3. Artık SQL Yönetilen Örneği için Microsoft Entra yöneticinizi seçebilirsiniz. Bunun için Azure portalında yönetilen örnek kaynağınıza gidin ve Ayarlar altında Microsoft Entra admin'i seçin.

    Screenshot of the Azure portal showing the Microsoft Entra admin page open for the selected SQL managed instance.

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

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Microsoft Entra ID with the Grant permissions button selected.

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

    Screenshot of a notification confirming that Microsoft Entra ID read permissions have been successfully updated for the managed instance.

  6. Microsoft Entra yönetici sayfasında, Microsoft Entra Id bölmesini açmak için gezinti çubuğundan Yöneticiyi ayarla'yı seçin.

    Screenshot showing the Set admin command highlighted on the Microsoft Entra admin page for the selected SQL managed instance.

  7. Microsoft Entra Id bölmesinde bir kullanıcı arayın, yönetici olmak için kullanıcı veya grubun yanındaki kutuyu işaretleyin ve ardından Seç tuşuna basarak bölmeyi kapatın ve yönetilen örneğinizin Microsoft Entra yönetici sayfasına geri dönün.

    Microsoft Entra Id bölmesi, geçerli dizininizdeki tüm üyeleri ve grupları gösterir. Gri renkteki kullanıcılar veya gruplar Microsoft Entra yöneticileri olarak desteklenmediğinden seçilemiyor. Microsoft Entra özellikleri ve sınırlamalarında desteklenen yöneticilerin listesine 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'e yayılmaz.

  8. Yönetilen örneğinizin Microsoft Entra yönetici sayfasının gezinti çubuğundan Kaydet'i seçerek Microsoft Entra yöneticinizi onaylayın.

    Screenshot of the Microsoft Entra admin page with the Save button in the top row next to the Set admin and Remove admin buttons.

    Yöneticiyi değiştirme işlemi birkaç dakika sürebilir. Ardından yeni yönetici Microsoft Entra yönetici kutusunda görünür.

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

SQL Yönetilen Örneği için bir Microsoft Entra yöneticisi sağladıktan sonra CREATE LOGIN söz dizimi ile Microsoft Entra 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, Microsoft Entra yönetici sayfasının üst kısmında Yöneticiyi kaldır'ı ve ardından Kaydet'i seçin.

PowerShell

Microsoft Entra ID'ye SQL Yönetilen Örneği okuma izinleri vermek üzere PowerShell'i kullanmak için şu betiği çalıştırın:

# This script grants "Directory Readers" permission to a service principal representing the SQL Managed Instance.
# It can be executed only by a user who is a member of the **Global Administrator** or **Privileged Roles Administrator** role.

Import-Module Microsoft.Graph.Authentication
$managedInstanceName = "<ManagedInstanceName>" # Enter the name of your managed instance
$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 SQL Managed Instance
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$managedInstanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
    Write-Output "Error: No service principal with name '$($managedInstanceName)' found, make sure that managedInstanceName parameter was entered correctly."
    exit
}
if (-not ($roleMember.Count -eq 1)) {
    Write-Output "Error: Multiple service principals with name '$($managedInstanceName)'"
    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 '$($managedInstanceName)' 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 "'$($managedInstanceName)' service principal added to 'Directory Readers' role."
} 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'in 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

Azure SQL Yönetilen Örneği hala PowerShell Azure Resource Manager (RM) modülünü destekler, ancak gelecekteki tüm geliştirmeler Az.Sql modülü içindir. AzureRM modülü en az Aralık 2020'ye kadar hata düzeltmeleri alır. 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ş.

Microsoft Entra 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 Microsoft Entra yöneticisi sağlamak ve yönetmek için kullanılan cmdlet'ler aşağıdaki tabloda listelenmiştir:

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

Aşağıdaki komut, ResourceGroup01 adlı bir kaynak grubuyla ilişkilendirilmiş ManagedInstance01 adlı bir SQL Yönetilen Örneği için Microsoft Entra 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 Microsoft Entra yönetici grubu sağlar. Bu sunucu ResourceGroup01 kaynak grubuyla ilişkilidir.

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

Aşağıdaki komut, ResourceGroup01 kaynak grubuyla ilişkilendirilmiş ManagedInstanceName01 adlı SQL Yönetilen Örneği için Microsoft Entra yöneticisini kaldırır.

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

Microsoft Entra yöneticisi sağlama (SQL Veritabanı)

Önemli

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

Aşağıdaki iki yordamda, Azure portalında ve PowerShell kullanarak sunucunuz için bir Microsoft Entra yöneticisi sağlama işlemi gösterilmektedir.

Azure portal

  1. Azure portalının sağ üst köşesinde hesabınızı seçin ve dizin değiştir'i seçerek Dizinler + abonelikler sayfasını açın. Geçerli dizin olarak Azure SQL Veritabanı veya Azure Synapse Analytics'i içeren Microsoft Entra dizinini seçin.

  2. SQL sunucularını arayın ve Azure SQL Veritabanı için mantıksal sunucuyu seçin.

    Search for and select SQL servers.

    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 menüsüne SQL sunucuları ekleyebilirsiniz.

    Azure SQL panonuzu da ziyaret edebilirsiniz.

  3. SQL server sayfasında Microsoft Entra Id'yi seçin.

  4. Microsoft Entra Id sayfasında Yöneticiyi ayarla'yı seçerek Microsoft Entra Id bölmesini açın

    Screenshot shows the option to set the Microsoft Entra admin for SQL servers.

  5. Microsoft Entra Id bölmesinde bir kullanıcı arayın ve ardından yönetici olmak için kullanıcıyı veya grubu seçin. Seçiminizi onaylamak için Seç'i kullanın ve mantıksal sunucunuzun Microsoft Entra Id sayfasına dönmek için bölmeyi kapatın. (Microsoft Entra Id bölmesi, geçerli dizininizin tüm üyelerini ve gruplarını gösterir. Gri renkteki kullanıcılar veya gruplar Microsoft Entra yöneticileri olarak desteklenmediğinden seçilemiyor. SQL Veritabanı veya Azure Synapse ile Microsoft Entra kimlik doğrulamasını kullanma bölümünün Microsoft Entra özellikleri 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 sunucuya yayılmaz.

  6. Mantıksal sunucunuzun Microsoft Entra Id sayfasının üst kısmında Kaydet'i seçin.

    Screenshot shows the option to save a Microsoft Entra admin.

    Nesne Kimliği, Microsoft Entra kullanıcıları ve grupları için 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 yönetici alanında görünür.

Not

Microsoft Entra yöneticisini ayarlarken, yeni yönetici adı (kullanıcı veya grup) sanal master veritabanında sunucu kimlik doğrulaması kullanıcısı olarak mevcut olamaz. Varsa, Microsoft Entra yönetici kurulumu başarısız olur ve böyle bir yöneticinin (ad) zaten var olduğunu belirten geri alınır. Sunucu kimlik doğrulaması kullanıcısı Microsoft Entra Id'nin bir parçası olmadığından, Microsoft Entra kimlik doğrulamasını kullanarak sunucuya bağlanma çabası başarısız olur.

Yöneticiyi daha sonra kaldırmak için Microsoft Entra Id sayfasının üst kısmında Yöneticiyi kaldır'ı ve ardından Kaydet'i seçin. Bu, mantıksal sunucunuz için Microsoft Entra kimlik doğrulamasını devre dışı bırakır.

SQL Veritabanı ve Azure Synapse için PowerShell

PowerShell cmdlet'lerini çalıştırmak için Azure PowerShell'in yüklü ve çalışır durumda olması gerekir. Ayrıntılı bilgi için bkz. Azure PowerShell'i yükleme ve yapılandırma. Microsoft Entra 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 Microsoft Entra yöneticisi sağlamak ve yönetmek için kullanılan cmdlet'ler:

Cmdlet adı Açıklama
Set-AzSqlServerActiveDirectoryAdministrator SQL Veritabanı veya Azure Synapse'i barındıran sunucu için bir Microsoft Entra yöneticisi sağlar. (Geçerli abonelikten olmalıdır)
Remove-AzSqlServerActiveDirectory Yönetici istrator SQL Veritabanı veya Azure Synapse barındıran sunucu için bir Microsoft Entra yöneticisini kaldırır.
Get-AzSqlServerActiveDirectory Yönetici istrator SQL Veritabanı veya Azure Synapse'i barındıran sunucu için yapılandırılmış olan bir Microsoft Entra yöneticisi hakkında bilgi 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 Microsoft Entra yönetici grubu sağlar:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"

DisplayName giriş parametresi Microsoft Entra Id görünen adını veya Kullanıcı Asıl Adı'nı kabul eder. Örneğin, DisplayName="John Smith" ve DisplayName="johns@contoso.com". Microsoft Entra grupları için yalnızca Microsoft Entra Id görünen adı desteklenir.

Not

Azure PowerShell komutu Set-AzSqlServerActiveDirectoryAdministrator desteklenmeyen kullanıcılar için Microsoft Entra yöneticileri sağlamanızı engellemez. Desteklenmeyen bir kullanıcı sağlanabilir ancak veritabanına bağlanamaz.

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 ObjectID gereklidir. ObjectID ve DisplayName değerlerini almak için, Azure Portal'ın Microsoft Entra Id bölümünde bir kullanıcı veya grubun özelliklerini görüntüleyebilirsiniz.

Aşağıdaki örnek, sunucu için geçerli Microsoft Entra yöneticisi hakkında bilgi döndürür:

Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

Aşağıdaki örnek bir Microsoft Entra yöneticisini kaldırır:

Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

Not

REST API'lerini kullanarak bir Microsoft Entra Yönetici istrator da 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ışı olan Azure Active Directory Kimlik Doğrulama Kitaplığı'nı (ADAL) kullanır. Microsoft Entra 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. Daha fazla bilgi için bkz . SqlClient ile Microsoft Entra kimlik doğrulamasını kullanma.

Uygulamalarınızda ADAL.DLL kullanmaya devam etmeniz gerekiyorsa, en son ADAL.DLL kitaplığını içeren en son ODBC veya 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 Microsoft Entra kimliklerini kullanarak SQL Veritabanı veya Azure Synapse'e bağlandığı tüm istemci makinelerinde aşağıdaki yazılımı yüklemeniz gerekir:

Bu gereksinimleri şu şekilde karşılayabilirsiniz:

  • SQL Server Management Studio veya SQL Server Veri Araçları'nin en son sürümünü yüklemek .NET Framework 4.6 gereksinimini karşılar.
    • SSMS, ADAL.DLL x86 sürümünü yükler.
    • SSDT, ADAL.DLL amd64 sürümünü yükler.
    • Visual Studio İndirmeleri'nden en son Visual Studio, .NET Framework 4.6 gereksinimini karşılar ancak ADAL.DLL gerekli amd64 sürümünü yüklemez.

Microsoft Entra kimliklerine eşlenen kapsanan kullanıcılar oluşturma

Bu bölümde Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse ile Microsoft Entra kimlik doğrulamasını kullanma gereksinimleri ve önemli noktalar inceleniyor.

  • SQL Veritabanı ve Azure Synapse ile Microsoft Entra kimlik doğrulaması, Microsoft Entra kimliğine dayalı olarak bağımsız veritabanı kullanıcılarının kullanılmasını gerektirir. Kapsanan veritabanı kullanıcısının master veritabanında oturum açma bilgisi yoktur ve veritabanıyla ilişkilendirilmiş Microsoft Entra Kimliği'ndeki bir kimlikle eşler. Microsoft Entra kimliği tek bir kullanıcı hesabı, grup veya uygulama olabilir. Kapsanan veritabanı kullanıcıları hakkında daha fazla bilgi için bkz . Kapsanan Veritabanı Kullanıcıları- Veritabanınızı Taşınabilir Hale Getirme. Microsoft Entra kimliklerini temel alan bağımsız veritabanı kullanıcıları oluşturma hakkında daha fazla bilgi için bkz . CREATE USER (Transact-SQL).

  • SQL Yönetilen Örneği Microsoft Entra sunucu sorumlularını (oturum açma bilgileri) desteklediği için, kapsanan veritabanı kullanıcılarını kullanmak gerekli değildir. Bu, Microsoft Entra 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 içinde bulunan bir veritabanı kullanıcısı yerine Microsoft Entra sunucusu 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ış. Microsoft Entra sunucu sorumluları (oturum açma bilgileri) oluşturma söz dizimi için bkz . CREATE LOGIN.

  • Veritabanı kullanıcıları (yöneticiler hariç) Azure portalını kullanarak veritabanı oluşturamaz. Microsoft Entra rolleri SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse'te veritabanına yayılmaz. Microsoft Entra rolleri Azure kaynaklarını yönetir ve veritabanı izinlerine uygulanmaz. Örneğin, SQL Server Katkıda Bulunanı rolü SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse'te veritabanına bağlanmak için erişim izni vermez. Erişim izni transact-SQL deyimleri kullanılarak doğrudan veritabanında verilmelidir.

  • 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 dizinlerdeki kullanıcılar ilişkili dizine dış kullanıcılar olarak aktarılabilir. Daha sonra, SQL Veritabanı erişebilen bağımsız veritabanı kullanıcıları oluşturmak için kullanılabilirler. Dış kullanıcılar, veritabanı kullanıcıları içeren Microsoft Entra gruplarına üyelik yoluyla da erişim elde edebilir.

  • T-SQL CREATE LOGIN ve deyimlerine kullanıcı adları olarak eklendiğinde iki nokta üst üste : veya ve &CREATE USER işareti gibi özel karakterler desteklenmez.

Önemli

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

Microsoft Entra ID tabanlı kapsanan veritabanı kullanıcısı (veritabanının sahibi sunucu yöneticisi dışında) oluşturmak için, en azından ALTER ANY USER iznine sahip bir kullanıcı olarak Microsoft Entra kimliğiyle veritabanına bağlanın . Aşağıdaki T-SQL örneğinde, Microsoft_Entra_principal_name bir Microsoft Entra kullanıcısının kullanıcı asıl adı veya bir Microsoft Entra grubunun görünen adı olabilir.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Örnekler: Microsoft Entra 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;

Microsoft Entra grubunu temsil eden bir bağımsız veritabanı kullanıcısı oluşturmak için grubun görünen adını belirtin:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Microsoft Entra belirtecini kullanarak bağlanan bir uygulamayı temsil eden bir bağımsız veritabanı kullanıcısı oluşturmak için:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Komut, CREATE USER ... FROM EXTERNAL PROVIDER oturum açmış kullanıcı adına Microsoft Entra Id'ye ("dış sağlayıcı") SQL erişimi gerektirir. Bazen, Microsoft Entra Id'nin SQL'e özel durum döndürmesine neden olan durumlar ortaya çıkar.

  • 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 ilkelerini '00000003-0000-0000-c000-000000000000' uygulamasına (Microsoft Graph API'sinin uygulama kimliği) erişime izin verecek şekilde güncelleştirmek 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ğlan ion Zaman Aşımı Süresi Doldu iletisini alırsanız, bağlantı dizesi parametresini false olarak ayarlamanız TransparentNetworkIPResolution gerekebilir. Daha fazla bilgi için bkz. .NET Framework 4.6.1 - TransparentNetworkIPResolution ile ilgili Bağlan zaman aşımı sorunu.

Önemli

Sunucu için Microsoft Entra yöneticisinin kaldırılması, herhangi bir Microsoft Entra kimlik doğrulaması kullanıcısının sunucuya bağlanmasını engeller. Gerekirse, SQL Veritabanı yöneticisi kullanılamayan Microsoft Entra kullanıcılarını el ile bırakabilir.

Veritabanı kullanıcısı oluşturduğunuzda, bu kullanıcı BAĞLAN iznini alır ve bu veritabanına GENEL rolünün bir üyesi olarak bağlanabilir. Başlangıçta, kullanıcıya yalnızca PUBLIC rolüne ve üye olduğu tüm Microsoft Entra gruplarına izin verilir. Microsoft Entra tabanlı kapsanan veritabanı kullanıcılarına izin vermek, diğer kullanıcı türlerine izin vermekle aynı şekilde çalışır. Tek tek kullanıcılara doğrudan izin vermek yerine veritabanı rollerine izin verilmesi ve bu rollere kullanıcı eklenmesi önerilir. 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ı'de Veritabanlarını ve Oturum Açma Bilgilerini Yönetme. Yönetilen etki alanına dış kullanıcı olarak içeri aktarılan federasyon etki alanı kullanıcı hesabı, yönetilen etki alanı kimliğini kullanmalıdır.

Microsoft Entra 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ğlan

Microsoft Entra yöneticisinin düzgün ayarlandığını onaylamak için master Microsoft Entra yönetici hesabını kullanarak veritabanına bağlanın. Microsoft Entra tabanlı kapsanan veritabanı kullanıcısı oluşturmak için veritabanına ve en azından izni olan bir Microsoft Entra kimliğiyle veritabanına bağlanın ALTER ANY USER .

SSMS veya SSDT kullanarak bağlanmak için Microsoft Entra kimliği kullanma

Aşağıdaki yordamlarda SQL Server Management Studio (SSMS) veya SQL Server Veritabanı Araçları (SSDT) kullanarak bir Microsoft Entra kimliğiyle SQL Veritabanı nasıl bağlanacağınız gösterilmektedir.

Microsoft Entra Id - Tümleşik

Federasyon etki alanından Microsoft Entra 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. Microsoft Entra sorunsuz çoklu oturum açma.

  1. SSMS veya SSDT'yi başlatın ve Sunucuya Bağlan (veya Veritabanı Altyapısına Bağlan) iletişim kutusunda, Kimlik Doğrulama kutusunda Azure Active Directory - Tümleşik'i seçin. Bağlantı için mevcut kimlik bilgileriniz sunulduğundan parola girmeniz gerekmez.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Seçenekler düğmesini seçin ve Bağlan ion Özellikleri sayfasında, veritabanına Bağlan kutusuna bağlanmak istediğiniz kullanıcı veritabanının adını yazın.

    Screenshot from SSMS of the Options menu.

Microsoft Entra Id - Parola

Microsoft Entra yönetilen etki alanını kullanarak bir Microsoft Entra 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 microsoft Entra yalnızca bulut kimlik kullanıcıları veya Microsoft Entra karma kimlikleri kullananlarla SQL Yönetilen Örneği 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'te veritabanında kimlik doğrulaması yapabilir.

  1. SSMS veya SSDT'yi başlatın ve Sunucuya Bağlan (veya Veritabanı Altyapısına Bağlan) iletişim kutusunda, Kimlik Doğrulama kutusunda Azure Active Directory - Parola'yı seçin.

  2. Kullanıcı adı kutusuna Microsoft Entra kullanıcı adınızı biçiminde username\@domain.comyazın. Kullanıcı adları, Microsoft Entra Kimliği'nden bir hesap veya Microsoft Entra Kimliği ile yönetilen veya federasyon etki alanından bir hesap olmalıdır.

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

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Seçenekler düğmesini seçin ve Bağlan ion Özellikleri sayfasında, 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.)

Microsoft Entra Id - MFA ile Evrensel

Parolanın etkileşimli olarak istenildiği çok faktörlü kimlik doğrulaması (MFA) ile etkileşimli kimlik doğrulaması için bu yöntemi kullanın. Bu yöntem, SQL Veritabanı, SQL Yönetilen Örneği ve Microsoft Entra yalnızca bulut için Azure Synapse kimlik kullanıcılarındaki veya Microsoft Entra karma kimliklerini kullanan veritabanlarında kimlik doğrulaması yapmak için kullanılabilir.

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

Microsoft Entra Id - Hizmet Sorumlusu

SQL Veritabanı veya microsoft Entra hizmet sorumlularıyla (Microsoft Entra uygulamaları) SQL Yönetilen Örneği veritabanında kimlik doğrulaması yapmak için bu yöntemi kullanın. Daha fazla bilgi için bkz . Azure SQL ile Microsoft Entra hizmet sorumlusu.

Microsoft Entra Id - Yönetilen Kimlik

SQL Veritabanı veya Microsoft Entra ile yönetilen kimliklerle SQL Yönetilen Örneği veritabanında kimlik doğrulaması yapmak için bu yöntemi kullanın. Daha fazla bilgi için bkz . Azure SQL için Microsoft Entra'da yönetilen kimlikler.

Microsoft Entra Id - Varsayılan

Microsoft Entra ID ile Varsayılan kimlik doğrulaması seçeneği, yönetilen kimlikler de dahil olmak üzere parolasız ve etkileşimli olmayan mekanizmalar aracılığıyla gerçekleştirilen kimlik doğrulamasını etkinleştirir.

Azure SQL Veritabanı için Azure portal Sorgu düzenleyicisini kullanarak bağlanmak için Microsoft Entra kimliğini kullanma

Azure SQL Veritabanı için Azure portalı Sorgu düzenleyicisi hakkında daha fazla bilgi için bkz. Hızlı Başlangıç: Azure SQL Veritabanı sorgulamak için Azure portalı sorgu düzenleyicisini kullanma.

  1. Azure portalında SQL veritabanınıza gidin. Örneğin, Azure SQL panonuzu ziyaret edin.

  2. Azure portalındaki SQL veritabanınıza Genel Bakış sayfasında, soldaki menüden Sorgu düzenleyicisi'ni seçin.

  3. Oturum açma ekranında SQL Veritabanı Sorgu Düzenleyicisi hoş geldiniz bölümünde Kullanıcı veya grup kimliğiniz> olarak <Devam'ı seçin.

    Screenshot showing sign-in to the Azure portal Query editor with Microsoft Entra authentication.

İstemci uygulamasından bağlanmak için Microsoft Entra kimliği kullanma

Aşağıdaki yordamlarda, bir istemci uygulamasından Microsoft Entra kimliğiyle bir SQL Veritabanı nasıl bağlanabileceğiniz gösterilmektedir. Bu, Microsoft Entra kimliği kullanılırken kimlik doğrulama yöntemlerinin kapsamlı bir listesi değildir. Daha fazla bilgi için bkz. Microsoft Entra kimlik doğrulaması ve SqlClient ile Azure SQL'e Bağlan.

Microsoft Entra tümleşik kimlik doğrulaması

Tümleşik Windows kimlik doğrulamasını kullanmak için etki alanınızın Active Directory'si Microsoft Entra Id ile birleştirilmelidir 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. Microsoft Entra 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 Microsoft Entra kimliği kullanarak bir veritabanına bağlanmak için bağlantı dizesi veritabanındaki Authentication anahtar sözcüğü olarak Active Directory Integratedayarlanmalıdır. değerini veritabanınızın adıyla değiştirin <database_name> . Aşağıdaki C# kod örneği ADO .NET kullanır.

string ConnectionString = @"Data Source=<database_name>.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 desteklenmez. ODBC bağlantısı kurarken boşlukları kaldırmanız ve kimlik doğrulamasını olarak ActiveDirectoryIntegratedayarlamanız gerekir.

Microsoft Entra parola kimlik doğrulaması

Microsoft Entra yalnızca bulut kimlik kullanıcı hesaplarını veya Microsoft Entra karma kimliklerini kullananları kullanarak bir veritabanına bağlanmak için Authentication anahtar sözcüğü olarak ayarlanmalıdır Active Directory Password. bağlantı dizesi Kullanıcı Kimliği/UID ve Parola/PWD anahtar sözcüklerini ve değerlerini içermelidir. , <email_address>ve <password> değerlerini uygun değerlerle değiştirin<database_name>. Aşağıdaki C# kod örneği ADO .NET kullanır.

string ConnectionString =
@"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Microsoft Entra authentication GitHub Demo'daki tanıtım kodu örneklerini kullanarak Microsoft Entra kimlik doğrulama yöntemleri hakkında daha fazla bilgi edinin.

Microsoft Entra Id erişim belirteci

Bu kimlik doğrulama yöntemi, orta katman hizmetlerinin Microsoft Entra Id'den bir belirteç alarak SQL Veritabanı, SQL Yönetilen Örneği veya Azure Synapse'teki veritabanına bağlanmak için JSON Web Belirteçleri (JWT) almasını sağlar. Bu yöntem, sertifika tabanlı kimlik doğrulaması kullanan hizmet kimlikleri, hizmet sorumluları ve uygulamalar gibi çeşitli uygulama senaryolarını etkinleştirir. Microsoft Entra belirteci kimlik doğrulamasını kullanmak için dört temel adımı tamamlamanız gerekir:

  1. Uygulamanızı Microsoft Entra Id ile kaydedin ve kodunuzun istemci kimliğini alın.
  2. Uygulamayı temsil eden bir veritabanı kullanıcısı oluşturun. (Bölümün önceki bölümlerinde tamamlandıMicrosoft Entra kimliklerine eşlenen bağımsız kullanıcılar oluşturun.)
  3. uygulamayı çalıştıran istemci bilgisayarda bir sertifika oluşturun.
  4. Sertifikayı uygulamanız için anahtar olarak ekleyin.

Örnek bağlantı dizesi. değerini veritabanınızın adıyla değiştirin <database_name> :

string ConnectionString = @"Data Source=<database_name>.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 daha fazla bilgi için bkz . Microsoft Entra Id'de sertifika tabanlı kimlik doğrulamasını kullanmaya başlama.

sqlcmd

Aşağıdaki deyimler sqlcmd'nin 13.1 sürümünü kullanarak bağlanır. SQL Server için Microsoft Komut Satırı Yardımcı Programları 14.0'ı indirin.

Not

sqlcmd-G komutu sistem kimlikleriyle çalışmaz ve kullanıcı asıl oturum açma işlemi 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

Microsoft Entra kimlik doğrulaması sorunlarını giderme

Microsoft Entra kimlik doğrulamasıyla ilgili sorunları giderme yönergeleri için bkz . Blog: Azure SQL DB ve DW ile Azure AD kimlik doğrulamasıyla ilgili sorunları giderme.