Mengonfigurasi dan mengelola autentikasi Microsoft Entra dengan Azure SQL

Berlaku untuk:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Artikel ini memperlihatkan kepada Anda cara membuat dan mengisi penyewa Microsoft Entra dan menggunakan ID Microsoft Entra (sebelumnya Azure Active Directory) dengan Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse Analytics. Untuk gambaran umum, lihat Autentikasi Microsoft Entra.

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Metode autentikasi Microsoft Entra

MICROSOFT Entra ID mendukung metode autentikasi berikut:

  • Identitas hanya-cloud Microsoft Entra
  • Identitas hibrid Microsoft Entra yang mendukung:
    • Autentikasi cloud dengan dua opsi ditambah dengan akses menyeluruh (SSO) yang mulus
      • Autentikasi hash kata sandi Microsoft Entra
      • Autentikasi pass-through Microsoft Entra
    • Autentikasi terfederasi

Untuk informasi selengkapnya tentang metode autentikasi Microsoft Entra dan mana yang harus dipilih, lihat Memilih metode autentikasi yang benar untuk solusi identitas hibrid Microsoft Entra Anda.

Untuk informasi selengkapnya tentang identitas, penyiapan, dan sinkronisasi hibrid Microsoft Entra, lihat:

Membuat dan mengisi penyewa Microsoft Entra

Buat penyewa Microsoft Entra dan isi dengan pengguna dan grup. Penyewa Microsoft Entra dapat dikelola sepenuhnya dalam Azure atau digunakan untuk federasi Active Directory lokal Domain Service.

Untuk informasi selengkapnya, lihat:

Mengaitkan atau menambahkan langganan Azure ke ID Microsoft Entra

  1. Kaitkan langganan Azure Anda ke ID Microsoft Entra dengan menjadikan direktori sebagai direktori tepercaya untuk langganan Azure yang menghosting database. Untuk detailnya, lihat Mengaitkan atau menambahkan langganan Azure ke penyewa Microsoft Entra Anda.

  2. Gunakan pengalih direktori di portal Azure untuk beralih ke langganan yang terkait dengan domain.

    Penting

    Setiap langganan Azure memiliki hubungan kepercayaan dengan instans Microsoft Entra. Ini mempercayai direktori tersebut untuk mengautentikasi pengguna, layanan, dan perangkat. Beberapa langganan dapat mempercayai direktori yang sama, tetapi langganan hanya mempercayai satu direktori. Hubungan kepercayaan yang dimiliki langganan dengan direktori ini tidak seperti langganan dengan semua sumber daya lain di Azure (situs web, database, dan sebagainya), yang lebih seperti sumber daya anak langganan. Jika langganan kedaluwarsa, maka akses ke sumber daya lain yang terkait dengan langganan juga akan dihentikan. Namun, direktori tetap berada di Azure, dan Anda dapat mengaitkan langganan lain dengan direktori tersebut dan terus mengelola pengguna direktori. Untuk informasi selengkapnya tentang sumber daya, lihat Memahami akses sumber daya di Azure. Untuk mempelajari selengkapnya tentang hubungan tepercaya ini, lihat Cara mengaitkan atau menambahkan langganan Azure ke ID Microsoft Entra.

Admin Microsoft Entra dengan server di SQL Database

Setiap server logis di Azure (yang menghosting SQL Database atau Azure Synapse) dimulai dengan satu akun administrator server yang merupakan administrator seluruh server. Buat akun administrator kedua sebagai akun Microsoft Entra. Prinsip ini dibuat sebagai pengguna database mandiri dalam master database server. Akun administrator adalah anggota peran db_owner di setiap database pengguna, dan setiap database pengguna dimasukkan sebagai pengguna dbo . Untuk informasi selengkapnya tentang akun administrator, lihat Mengelola Database dan Login.

Administrator Microsoft Entra harus dikonfigurasi untuk server utama dan sekunder saat menggunakan ID Microsoft Entra dengan replikasi geografis. Jika server tidak memiliki administrator Microsoft Entra, login Microsoft Entra dan pengguna menerima Cannot connect kesalahan server.

Catatan

Pengguna yang tidak didasarkan pada akun Microsoft Entra (termasuk akun administrator server) tidak dapat membuat pengguna berbasis Microsoft Entra, karena mereka tidak memiliki izin untuk memvalidasi pengguna database yang diusulkan dengan ID Microsoft Entra.

Memprovisikan admin Microsoft Entra (SQL Managed Instance)

Penting

Hanya ikuti langkah-langkah ini jika Anda menyediakan Azure SQL Managed Instance. Operasi ini hanya dapat dijalankan oleh Administrator Global atau Administrator Peran Istimewa di ID Microsoft Entra.

Anda dapat menetapkan peran Pembaca Direktori ke grup di ID Microsoft Entra. Pemilik grup kemudian dapat menambahkan identitas instans terkelola sebagai anggota grup ini, yang memungkinkan Anda menyediakan admin Microsoft Entra untuk SQL Managed Instance. Untuk informasi selengkapnya tentang fitur ini, lihat Peran Pembaca Direktori di Microsoft Entra untuk Azure SQL.

SQL Managed Instance Anda memerlukan izin untuk membaca ID Microsoft Entra untuk menyelesaikan tugas seperti autentikasi pengguna melalui keanggotaan grup keamanan atau pembuatan pengguna baru. Agar ini berfungsi, Anda harus memberikan izin SQL Managed Instance untuk membaca ID Microsoft Entra. Anda dapat melakukan ini dengan menggunakan portal Microsoft Azure atau PowerShell.

Portal Azure

Untuk memberikan izin baca SQL Managed Instance Anda ke MICROSOFT Entra ID menggunakan portal Azure, masuk sebagai Administrator Global dan ikuti langkah-langkah berikut:

  1. Di portal Azure, di sudut kanan atas pilih akun Anda, lalu pilih Alihkan direktori untuk mengonfirmasi direktori mana yang menjadi direktori Anda saat ini. Beralih direktori, jika perlu.

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

  2. Pilih direktori Microsoft Entra yang benar sebagai direktori Saat ini.

    Langkah ini menautkan langganan yang terkait dengan ID Microsoft Entra ke SQL Managed Instance, memastikan penyewa Microsoft Entra dan SQL Managed Instance menggunakan langganan yang sama.

  3. Sekarang, Anda dapat memilih admin Microsoft Entra untuk SQL Managed Instance Anda. Untuk itu, buka sumber daya instans terkelola Anda di portal Azure dan pilih admin Microsoft Entra di bawah Pengaturan.

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

  4. Pilih banner di atas halaman admin Microsoft Entra dan berikan izin kepada pengguna saat ini.

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

  5. Setelah operasi berhasil, pemberitahuan berikut akan muncul di sudut kanan atas:

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

  6. Pada halaman admin Microsoft Entra, pilih Atur admin dari bilah navigasi untuk membuka panel ID Microsoft Entra.

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

  7. Pada panel ID Microsoft Entra, cari pengguna, centang kotak di samping pengguna atau grup untuk menjadi administrator, lalu tekan Pilih untuk menutup panel dan kembali ke halaman admin Microsoft Entra untuk instans terkelola Anda.

    Panel ID Microsoft Entra memperlihatkan semua anggota dan grup dalam direktori Anda saat ini. Pengguna atau grup berwarna abu-abu tidak dapat dipilih karena mereka tidak didukung sebagai administrator Microsoft Entra. Lihat daftar admin yang didukung di fitur dan batasan Microsoft Entra. Kontrol akses berbasis peran Azure (Azure RBAC) hanya berlaku untuk portal Microsoft Azure dan tidak disebarkan ke SQL Database, SQL Managed Instance, atau Azure Synapse.

  8. Dari bilah navigasi halaman admin Microsoft Entra untuk instans terkelola Anda, pilih Simpan untuk mengonfirmasi administrator Microsoft Entra Anda.

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

    Proses mengubah administrator mungkin memakan waktu beberapa menit. Kemudian administrator baru muncul di kotak admin Microsoft Entra.

    ID Objek ditampilkan di samping nama admin untuk pengguna dan grup Microsoft Entra. Untuk aplikasi (perwakilan layanan), ID Aplikasi ditampilkan.

Setelah memprovisikan admin Microsoft Entra untuk SQL Managed Instance, Anda dapat mulai membuat prinsipal server Microsoft Entra (login) dengan sintaksIS CREATE LOGIN . Untuk informasi selengkapnya, lihat Ikhtisar SQL Managed Instance.

Tip

Untuk menghapus Admin nanti, di bagian atas halaman admin Microsoft Entra, pilih Hapus admin, lalu pilih Simpan.

PowerShell

Untuk menggunakan PowerShell guna memberikan izin baca SQL Managed Instance Anda ke ID Microsoft Entra, jalankan skrip ini:

# 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."
}

PowerShell untuk SQL Managed Instance

Untuk menjalankan cmdlet PowerShell, Anda harus menginstal dan menjalankan Azure PowerShell. Lihat Cara menginstal dan mengonfigurasi Azure PowerShell untuk informasi terperinci.

Penting

Azure SQL Managed Instance masih mendukung modul PowerShell Azure Resource Manager (RM), tetapi semua pengembangan di masa mendatang adalah untuk modul Az.Sql. Modul AzureRM akan menerima perbaikan bug hingga setidaknya Desember 2020. Argumen untuk perintah dalam modul Az dan dalam modul AzureRm secara substansial identik. Untuk informasi selengkapnya tentang kompatibilitas keduanya, lihat Memperkenalkan modul Azure PowerShell Az baru.

Untuk memprovisikan admin Microsoft Entra, jalankan perintah Azure PowerShell berikut ini:

  • Connect-AzAccount
  • Select-AzSubscription

Cmdlet yang digunakan untuk menyediakan dan mengelola admin Microsoft Entra untuk SQL Managed Instance Anda tercantum dalam tabel berikut:

Nama cmdlet Deskripsi
Set-AzSqlInstanceActiveDirectoryAdministrator Menyediakan administrator Microsoft Entra untuk SQL Managed Instance dalam langganan saat ini. (Harus dari langganan saat ini)
Remove-AzSqlInstanceActiveDirectoryAdministrator Menghapus administrator Microsoft Entra untuk SQL Managed Instance dalam langganan saat ini.
Remove-AzSqlInstanceActiveDirectoryAdministrator Mengembalikan informasi tentang administrator Microsoft Entra untuk SQL Managed Instance dalam langganan saat ini.

Perintah berikut mendapatkan informasi tentang administrator Microsoft Entra untuk SQL Managed Instance bernama ManagedInstance01 yang terkait dengan grup sumber daya bernama ResourceGroup01.

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

Perintah berikut ini menyediakan grup administrator Microsoft Entra bernama DBA untuk SQL Managed Instance bernama ManagedInstance01. Server ini dikaitkan dengan grup sumber daya ResourceGroup01.

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

Perintah berikut menghapus administrator Microsoft Entra untuk SQL Managed Instance bernama ManagedInstanceName01 yang terkait dengan grup sumber daya ResourceGroup01.

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

Memprovisikan admin Microsoft Entra (SQL Database)

Penting

Hanya ikuti langkah-langkah ini jika Anda menyediakan server untuk Database SQL atau Azure Synapse.

Dua prosedur berikut menunjukkan kepada Anda cara memprovisikan administrator Microsoft Entra untuk server Anda di portal Azure dan dengan menggunakan PowerShell.

Portal Azure

  1. Di portal Azure, di sudut kanan atas, pilih akun Anda lalu pilih Alihkan direktori untuk membuka halaman Direktori + langganan. Pilih direktori Microsoft Entra, yang berisi Azure SQL Database atau Azure Synapse Analytics Anda sebagai direktori Saat Ini.

  2. Cari server SQL dan pilih server logis untuk Azure SQL Database Anda.

    Search for and select SQL servers.

    Catatan

    Pada halaman ini, sebelum memilih server SQL, Anda dapat memilih bintang di samping nama untuk memfavoritkan kategori dan menambahkan server SQL ke menu navigasi kiri.

    Pertimbangkan juga mengunjungi dasbor Azure SQL Anda.

  3. Pada halaman server SQL, pilih ID Microsoft Entra.

  4. Pada halaman ID Microsoft Entra, pilih Atur admin untuk membuka panel ID Microsoft Entra

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

  5. Pada panel ID Microsoft Entra, cari pengguna lalu pilih pengguna atau grup untuk menjadi administrator. Gunakan Pilih untuk mengonfirmasi pilihan Anda dan menutup panel untuk kembali ke halaman ID Microsoft Entra server logis Anda. (Panel ID Microsoft Entra memperlihatkan semua anggota dan grup direktori Anda saat ini. Pengguna atau grup berwarna abu-abu tidak dapat dipilih karena mereka tidak didukung sebagai administrator Microsoft Entra. Lihat daftar admin yang didukung di bagian fitur dan batasan Microsoft Entra dari Gunakan autentikasi Microsoft Entra dengan SQL Database atau Azure Synapse.) Kontrol akses berbasis peran Azure (Azure RBAC) hanya berlaku untuk portal dan tidak disebarkan ke server.

  6. Di bagian atas halaman ID Microsoft Entra untuk server logis Anda, pilih Simpan.

    Screenshot shows the option to save a Microsoft Entra admin.

    ID Objek ditampilkan di samping nama admin untuk pengguna dan grup Microsoft Entra. Untuk aplikasi (perwakilan layanan), ID Aplikasi ditampilkan.

Proses mengubah administrator mungkin memakan waktu beberapa menit. Kemudian administrator baru muncul di bidang admin Microsoft Entra.

Catatan

Saat menyiapkan admin Microsoft Entra, nama admin baru (pengguna atau grup) belum dapat ada di database virtual master sebagai pengguna autentikasi server. Jika ada, penyiapan admin Microsoft Entra gagal dan digulung balik, menunjukkan admin (nama) seperti itu sudah ada. Karena pengguna autentikasi server bukan bagian dari ID Microsoft Entra, upaya apa pun untuk terhubung ke server menggunakan autentikasi Microsoft Entra gagal.

Untuk menghapus admin nanti, di bagian atas halaman ID Microsoft Entra, pilih Hapus admin, lalu pilih Simpan. Ini menonaktifkan autentikasi Microsoft Entra untuk server logis Anda.

PowerShell untuk Database SQL dan Azure Synapse

Untuk menjalankan cmdlet PowerShell, Anda harus menginstal dan menjalankan Azure PowerShell. Lihat Cara menginstal dan mengonfigurasi Azure PowerShell untuk informasi terperinci. Untuk memprovisikan admin Microsoft Entra, jalankan perintah Azure PowerShell berikut ini:

  • Connect-AzAccount
  • Select-AzSubscription

Cmdlet yang digunakan untuk menyediakan dan mengelola admin Microsoft Entra untuk SQL Database dan Azure Synapse:

Nama cmdlet Deskripsi
Set-AzSqlServerActiveDirectoryAdministrator Menyediakan administrator Microsoft Entra untuk server yang menghosting SQL Database atau Azure Synapse. (Harus dari langganan saat ini)
Set-AzSqlServerActiveDirectoryAdministrator Menghapus administrator Microsoft Entra untuk server yang menghosting SQL Database atau Azure Synapse.
Get-AzSqlServerActiveDirectoryAdministrator Mengembalikan informasi tentang administrator Microsoft Entra yang saat ini dikonfigurasi untuk server yang menghosting SQL Database atau Azure Synapse.

Gunakan bantuan perintah PowerShell untuk melihat informasi selengkapnya untuk setiap perintah ini. Contohnya,get-help Set-AzSqlServerActiveDirectoryAdministrator.

Skrip berikut ini menyediakan grup administrator Microsoft Entra bernama DBA_Group (ID 40b79501-b343-44ed-9ce7-da4c8cc7353fobjek ) untuk server demo_server dalam grup sumber daya bernama Group-23:

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

Parameter input DisplayName menerima nama tampilan ID Microsoft Entra atau Nama Utama Pengguna. Misalnya, DisplayName="John Smith" dan DisplayName="johns@contoso.com". Untuk grup Microsoft Entra hanya nama tampilan ID Microsoft Entra yang didukung.

Catatan

Perintah Set-AzSqlServerActiveDirectoryAdministrator Azure PowerShell tidak mencegah Anda menyediakan admin Microsoft Entra untuk pengguna yang tidak didukung. Pengguna yang tidak didukung dapat diprovisikan tetapi tidak dapat tersambung ke database.

Contoh berikut menggunakan ObjectID opsional:

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
    -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

Catatan

ObjectID diperlukan ketika DisplayName tidak unik. Untuk mengambil nilai ObjectID dan DisplayName , Anda dapat melihat properti pengguna atau grup di bagian ID Microsoft Entra di Portal Microsoft Azure.

Contoh berikut mengembalikan informasi tentang admin Microsoft Entra saat ini untuk server:

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

Contoh berikut menghapus administrator Microsoft Entra:

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

Catatan

Anda juga dapat memprovisikan Administrator Microsoft Entra dengan menggunakan REST API. Untuk informasi selengkapnya, lihat Referensi dan Operasi REST API Manajemen Layanan untuk Operasi Azure SQL Database untuk Microsoft Azure SQL Database

Mengonfigurasikan komputer klien Anda

Catatan

System.Data.SqlClient menggunakan Azure Active Directory Authentication Library (ADAL), yang tidak digunakan lagi. Jika Anda menggunakan namespace System.Data.SqlClient untuk autentikasi Microsoft Entra, migrasikan aplikasi ke Microsoft.Data.SqlClient dan Microsoft Authentication Library (MSAL). Untuk informasi selengkapnya, lihat Menggunakan autentikasi Microsoft Entra dengan SqlClient.

Jika Anda harus terus menggunakan ADAL.DLL di aplikasi, Anda dapat menggunakan tautan di bagian ini untuk menginstal driver ODBC atau OLE DB terbaru, yang berisi pustaka ADAL.DLL terbaru.

Di semua komputer klien tempat aplikasi atau pengguna Anda terhubung ke SQL Database atau Azure Synapse menggunakan identitas Microsoft Entra, Anda harus menginstal perangkat lunak berikut:

Anda dapat memenuhi persyaratan ini dengan:

  • Menginstal versi terbaru SQL Server Management Studio atau SQL Server Data Tools memenuhi persyaratan .NET Framework 4.6.
    • SQL Server Management Studio (SSMS) menginstal versi x86 dari ADAL.DLL.
    • SQL Server Data Tools (SSDT) menginstal versi amd64 dari ADAL.DLL.
    • Visual Studio terbaru dari Unduhan Visual Studio memenuhi persyaratan .NET Framework 4.6 tetapi tidak menginstal versi amd64 yang diperlukan ADAL.DLL.

Membuat pengguna mandiri yang dipetakan ke identitas Microsoft Entra

Bagian ini meninjau persyaratan dan pertimbangan penting untuk menggunakan autentikasi Microsoft Entra dengan Azure SQL Database, Azure SQL Managed Instance, dan Azure Synapse.

  • Autentikasi Microsoft Entra dengan SQL Database dan Azure Synapse memerlukan penggunaan pengguna database mandiri berdasarkan identitas Microsoft Entra. Pengguna database mandiri tidak memiliki login dalam master database, dan memetakan ke identitas di ID Microsoft Entra yang terkait dengan database. Identitas Microsoft Entra dapat berupa akun pengguna, grup, atau aplikasi individual. Untuk informasi selengkapnya tentang pengguna database mandiri, lihat Pengguna Database Mandiri - Membuat Database Anda Portabel. Untuk informasi selengkapnya tentang membuat pengguna database mandiri berdasarkan identitas Microsoft Entra, lihat MEMBUAT PENGGUNA (Transact-SQL).

  • Karena SQL Managed Instance mendukung prinsipal server Microsoft Entra (login), menggunakan pengguna database mandiri tidak diperlukan. Ini memungkinkan Anda membuat login dari pengguna, grup, atau aplikasi Microsoft Entra. Ini berarti Anda dapat mengautentikasi dengan SQL Managed Instance Anda menggunakan login server Microsoft Entra daripada pengguna database mandiri. Untuk informasi selengkapnya, lihat Ikhtisar SQL Managed Instance. Untuk sintaksis tentang membuat prinsipal server Microsoft Entra (masuk), lihat MEMBUAT LOGIN.

  • Pengguna database (kecuali administrator) tidak dapat membuat database menggunakan portal Azure. Peran Microsoft Entra tidak disebarkan ke database di SQL Database, SQL Managed Instance, atau Azure Synapse. Peran Microsoft Entra mengelola sumber daya Azure dan tidak berlaku untuk izin database. Misalnya, peran Kontributor SQL Server tidak memberikan akses untuk menyambungkan ke database di SQL Database, SQL Managed Instance, atau Azure Synapse. Izin akses harus diberikan langsung dalam database menggunakan pernyataan Transact-SQL.

  • Anda tidak dapat langsung membuat pengguna database untuk identitas yang dikelola di penyewa Microsoft Entra yang berbeda dari yang terkait dengan langganan Azure Anda. Namun, pengguna di direktori lain dapat diimpor ke direktori terkait sebagai pengguna eksternal. Mereka kemudian dapat digunakan untuk membuat pengguna database mandiri yang dapat mengakses SQL Database. Pengguna eksternal juga dapat memperoleh akses melalui keanggotaan di grup Microsoft Entra yang berisi pengguna database.

  • Karakter khusus seperti titik dua : atau ampersand & saat disertakan sebagai nama pengguna dalam T-SQL CREATE LOGIN dan CREATE USER pernyataan tidak didukung.

Penting

Pengguna Microsoft Entra dan perwakilan layanan (aplikasi Microsoft Entra) yang merupakan anggota lebih dari 2048 grup keamanan Microsoft Entra tidak didukung untuk masuk ke database di SQL Database, SQL Managed Instance, atau Azure Synapse.

Untuk membuat pengguna database mandiri berbasis ID Microsoft Entra (selain administrator server yang memiliki database), sambungkan ke database dengan identitas Microsoft Entra sebagai pengguna dengan setidaknya izin UBAH PENGGUNA APA PUN. Dalam contoh T-SQL berikut, Microsoft_Entra_principal_name bisa menjadi nama utama pengguna Microsoft Entra atau nama tampilan untuk grup Microsoft Entra.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Contoh: Untuk membuat pengguna database mandiri yang mewakili pengguna domain terfederasi atau terkelola Microsoft Entra:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

Untuk membuat pengguna database mandiri yang mewakili grup Microsoft Entra, berikan nama tampilan grup:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Untuk membuat pengguna database mandiri yang mewakili aplikasi yang tersambung menggunakan token Microsoft Entra:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Perintah ini CREATE USER ... FROM EXTERNAL PROVIDER memerlukan akses SQL ke MICROSOFT Entra ID ("penyedia eksternal") atas nama pengguna yang masuk. Terkadang, keadaan muncul yang menyebabkan MICROSOFT Entra ID mengembalikan pengecualian ke SQL.

  • Anda mungkin mengalami kesalahan SQL 33134, yang berisi pesan kesalahan khusus ID Microsoft Entra. Kesalahan biasanya mengatakan bahwa akses ditolak, bahwa pengguna harus mendaftar di MFA untuk mengakses sumber daya, atau bahwa akses antara aplikasi pihak pertama harus ditangani melalui praautorisasi. Dalam dua kasus pertama, masalah biasanya disebabkan oleh kebijakan Akses Bersyar yang diatur dalam penyewa Microsoft Entra pengguna: mereka mencegah pengguna mengakses penyedia eksternal. Memperbarui kebijakan Akses Bersyarat untuk memungkinkan akses ke aplikasi '00000003-0000-0000-c000-000000000000' (ID aplikasi API Microsoft Graph) harus menyelesaikan masalah. Jika kesalahan mengatakan akses antara aplikasi pihak pertama harus ditangani melalui praautorisasi, masalahnya adalah karena pengguna masuk sebagai perwakilan layanan. Perintah harus berhasil jika dijalankan oleh pengguna sebagai gantinya.
  • Jika Anda menerima batas waktu Koneksi ion Kedaluwarsa, Anda mungkin perlu mengatur TransparentNetworkIPResolution parameter string koneksi ke false. Untuk informasi selengkapnya, lihat Masalah batas waktu koneksi dengan.NET Framework 4.6.1 - TransparentNetworkIPResolution.

Penting

Menghapus administrator Microsoft Entra untuk server mencegah pengguna autentikasi Microsoft Entra tersambung ke server. Jika perlu, administrator SQL Database dapat menghilangkan pengguna Microsoft Entra yang tidak dapat digunakan secara manual.

Saat Anda membuat pengguna database, pengguna tersebut menerima izin CONNECT dan bisa menyambungkan ke database tersebut sebagai anggota peran PUBLIK. Awalnya, satu-satunya izin yang tersedia untuk pengguna diberikan ke peran PUBLIK dan ke grup Microsoft Entra mana pun tempat mereka menjadi anggota. Memberikan izin kepada pengguna database mandiri berbasis Microsoft Entra beroperasi dengan cara yang sama seperti memberikan izin kepada jenis pengguna lain. Disarankan untuk memberikan izin ke peran database dan menambahkan pengguna ke peran tersebut daripada secara langsung memberikan izin kepada pengguna individual. Untuk informasi selengkapnya, lihat Dasar-Dasar Izin Mesin Database. Untuk informasi selengkapnya tentang peran Database SQL khusus, lihat Mengelola Database dan Login di Azure SQL Database. Akun pengguna domain federasi yang diimpor ke domain terkelola sebagai pengguna eksternal, harus menggunakan identitas domain terkelola.

Pengguna Microsoft Entra ditandai dalam metadata database dengan tipe E (EXTERNAL_USER) dan untuk grup dengan tipe X (EXTERNAL_GROUPS). Untuk informasi selengkapnya, lihat sys.databases_principals.

Menyambungkan ke database menggunakan SQL Server Management Studio (SSMS) atau SQL Server Data Tools (SSDT)

Untuk mengonfirmasi administrator Microsoft Entra disiapkan dengan benar, sambungkan ke master database menggunakan akun administrator Microsoft Entra. Untuk membuat pengguna database mandiri berbasis Microsoft Entra, sambungkan ke database dengan identitas Microsoft Entra dengan akses ke database dan setidaknya ALTER ANY USER izin.

Menggunakan identitas Microsoft Entra untuk menyambungkan menggunakan SSMS atau SSDT

Prosedur berikut menunjukkan cara menyambungkan ke SQL Database dengan identitas Microsoft Entra menggunakan SQL Server Management Studio (SSMS) atau SQL Server Database Tools (SSDT).

ID Microsoft Entra - Terintegrasi

Gunakan metode ini jika Anda masuk ke Windows menggunakan kredensial Microsoft Entra dari domain federasi, atau domain terkelola yang dikonfigurasi untuk akses menyeluruh tanpa hambatan untuk autentikasi hash pass-through dan kata sandi. Untuk informasi selengkapnya, lihat Single sign-on tanpa hambatan Microsoft Entra.

  1. Mulai SQL Server Management Studio atau SSDT dan dalam kotak dialog Koneksi ke Server (atau Koneksi ke Mesin Database), dalam kotak Autentikasi, pilih Azure Active Directory - Terintegrasi. Tidak perlu memasukkan kata sandi karena kredensial Anda yang ada disajikan untuk koneksi.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Pilih tombol Opsi, dan pada halaman Properti Koneksi, dalam kotak Sambungkan ke database, ketik nama database pengguna yang ingin Anda sambungkan.

    Screenshot from SSMS of the Options menu.

ID Microsoft Entra - Kata Sandi

Gunakan metode ini saat menyambungkan dengan nama utama Microsoft Entra menggunakan domain terkelola Microsoft Entra. Anda juga dapat menggunakannya untuk akun federasi tanpa akses ke domain, misalnya, saat bekerja dari jarak jauh.

Gunakan metode ini untuk mengautentikasi ke database di SQL Database atau SQL Managed Instance dengan pengguna identitas khusus cloud Microsoft Entra, atau mereka yang menggunakan identitas hibrid Microsoft Entra. Metode ini mendukung pengguna yang ingin menggunakan kredensial Windows mereka, tetapi komputer lokal mereka tidak bergabung dengan domain (misalnya, menggunakan akses jarak jauh). Dalam hal ini, pengguna Windows dapat menunjukkan akun domain dan kata sandi mereka, dan dapat mengautentikasi ke database di Database SQL, SQL Managed Instance, atau Azure Synapse.

  1. Mulai SSMS atau SSDT dan dalam kotak dialog Koneksi ke Server (atau Koneksi ke Mesin Database), dalam kotak Autentikasi, pilih Azure Active Directory - Kata Sandi.

  2. Dalam kotak Nama pengguna, ketik nama pengguna Microsoft Entra Anda dalam format username\@domain.com. Nama pengguna harus merupakan akun dari ID Microsoft Entra atau akun dari domain terkelola atau federasi dengan ID Microsoft Entra.

  3. Dalam kotak Kata Sandi , ketik kata sandi pengguna Anda untuk akun Microsoft Entra atau akun domain terkelola/federasi.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Pilih tombol Opsi, dan pada halaman Properti Koneksi, dalam kotak Sambungkan ke database, ketik nama database pengguna yang ingin Anda sambungkan. (Lihat grafik di opsi sebelumnya.)

MICROSOFT Entra ID - Universal dengan MFA

Gunakan metode ini untuk autentikasi interaktif dengan autentikasi multifaktor (MFA), dengan kata sandi diminta secara interaktif. Metode ini dapat digunakan untuk mengautentikasi ke database di SQL Database, SQL Managed Instance, dan Azure Synapse untuk pengguna identitas khusus cloud Microsoft Entra, atau mereka yang menggunakan identitas hibrid Microsoft Entra.

Untuk informasi selengkapnya, lihat Menggunakan autentikasi Microsoft Entra multifaktor dengan SQL Database dan Azure Synapse (dukungan SSMS untuk MFA).

ID Microsoft Entra - Perwakilan Layanan

Gunakan metode ini untuk mengautentikasi ke database di SQL Database atau SQL Managed Instance dengan perwakilan layanan Microsoft Entra (aplikasi Microsoft Entra). Untuk informasi selengkapnya, lihat Perwakilan layanan Microsoft Entra dengan Azure SQL.

ID Microsoft Entra - Identitas Terkelola

Gunakan metode ini untuk mengautentikasi ke database di SQL Database atau SQL Managed Instance dengan identitas terkelola Microsoft Entra. Untuk informasi selengkapnya, lihat Identitas terkelola di Microsoft Entra untuk Azure SQL.

Microsoft Entra ID - Default

Opsi Autentikasi default dengan MICROSOFT Entra ID memungkinkan autentikasi yang dilakukan melalui mekanisme tanpa kata sandi dan non-interaktif termasuk identitas terkelola.

Menggunakan identitas Microsoft Entra untuk menyambungkan menggunakan editor kueri portal Azure untuk Azure SQL Database

Untuk informasi selengkapnya tentang editor kueri portal Azure untuk Azure SQL Database, lihat Mulai Cepat: Menggunakan editor kueri portal Azure untuk mengkueri Azure SQL Database.

  1. Navigasi ke database SQL Anda di portal Azure. Misalnya, kunjungi dasbor Azure SQL Anda.

  2. Pada halaman Gambaran Umum database SQL Anda di portal Azure, pilih Editor kueri dari menu sebelah kiri.

  3. Pada layar masuk di bawah Selamat Datang di SQL Database Editor Kueri, pilih Lanjutkan sebagai <ID> pengguna atau grup Anda.

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

Menggunakan identitas Microsoft Entra untuk menyambungkan dari aplikasi klien

Prosedur berikut menunjukkan kepada Anda cara menyambungkan ke SQL Database dengan identitas Microsoft Entra dari aplikasi klien. Ini bukan daftar lengkap metode autentikasi saat menggunakan identitas Microsoft Entra. Untuk informasi selengkapnya, lihat Koneksi ke Azure SQL dengan autentikasi Microsoft Entra dan SqlClient.

Autentikasi terintegrasi Microsoft Entra

Untuk menggunakan autentikasi Windows terintegrasi, Direktori Aktif domain Anda harus digabungkan dengan ID Microsoft Entra, atau harus menjadi domain terkelola yang dikonfigurasi untuk akses menyeluruh tanpa hambatan untuk autentikasi hash pass-through atau kata sandi. Untuk informasi selengkapnya, lihat Single sign-on tanpa hambatan Microsoft Entra.

Aplikasi klien Anda (atau layanan) yang tersambung ke database harus berjalan pada mesin yang bergabung dengan domain di bawah kredensial domain pengguna.

Untuk menyambungkan ke database menggunakan autentikasi terintegrasi dan identitas Microsoft Entra, kata kunci Autentikasi dalam database string koneksi harus diatur ke Active Directory Integrated. Ganti <database_name> dengan nama database Anda. Contoh kode C# berikut menggunakan ADO.NET.

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

Kata kunci Integrated Security=True string koneksi tidak didukung untuk menyambungkan ke Azure SQL Database. Saat membuat koneksi ODBC, Anda perlu menghapus spasi dan mengatur autentikasi ke ActiveDirectoryIntegrated.

Autentikasi kata sandi Microsoft Entra

Untuk menyambungkan ke database menggunakan akun pengguna identitas khusus cloud Microsoft Entra, atau mereka yang menggunakan identitas hibrid Microsoft Entra, kata kunci Autentikasi harus diatur ke Active Directory Password. String koneksi harus berisi kata kunci dan nilai User ID/UID dan Password/PWD. Ganti <database_name>, <email_address> dan <password> dengan nilai yang sesuai. Contoh kode C# berikut menggunakan ADO.NET.

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();

Pelajari selengkapnya tentang metode autentikasi Microsoft Entra menggunakan sampel kode demo yang tersedia di Demo GitHub autentikasi Microsoft Entra.

Token akses ID Microsoft Entra

Metode autentikasi ini memungkinkan layanan tingkat menengah untuk mendapatkan JSON Web Tokens (JWT) untuk menyambungkan ke database di SQL Database, SQL Managed Instance, atau Azure Synapse dengan mendapatkan token dari ID Microsoft Entra. Metode ini memungkinkan berbagai skenario aplikasi termasuk identitas layanan, prinsipal layanan, dan aplikasi menggunakan autentikasi berbasis sertifikat. Anda harus menyelesaikan empat langkah dasar untuk menggunakan autentikasi token Microsoft Entra:

  1. Daftarkan aplikasi Anda dengan ID Microsoft Entra dan dapatkan ID klien untuk kode Anda.
  2. Membuat pengguna database yang mewakili aplikasi. (Selesai sebelumnya di bagian Buat pengguna mandiri yang dipetakan ke identitas Microsoft Entra.)
  3. Buat sertifikat pada komputer klien yang menjalankan aplikasi.
  4. Tambahkan sertifikat sebagai kunci untuk aplikasi Anda.

Contoh string koneksi. Ganti <database_name> dengan nama database Anda:

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

Untuk informasi selengkapnya, lihat Blog Keamanan SQL Server. Untuk informasi tentang menambahkan sertifikat, lihat Mulai menggunakan autentikasi berbasis sertifikat di ID Microsoft Entra.

sqlcmd

Pernyataan berikut terhubung menggunakan sqlcmd versi 13.1. Unduh Utilitas Baris Perintah Microsoft 14.0 untuk SQL Server.

Catatan

sqlcmd dengan -G perintah tidak berfungsi dengan identitas sistem, dan memerlukan login utama pengguna.

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

Memecahkan masalah autentikasi Microsoft Entra

Untuk panduan tentang pemecahan masalah dengan autentikasi Microsoft Entra, lihat Blog: Memecahkan masalah yang terkait dengan autentikasi Azure AD dengan Azure SQL DB dan DW.