Mengonfigurasi dan mengelola autentikasi Microsoft Entra dengan Azure SQL
Berlaku untuk: Azure SQL Database
Azure SQL Managed Instance
Azure 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
- Autentikasi cloud dengan dua opsi ditambah dengan akses menyeluruh (SSO) yang mulus
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:
- Autentikasi hash kata sandi - Menerapkan sinkronisasi hash kata sandi dengan Sinkronisasi Microsoft Entra Connect
- Autentikasi pass-through - Autentikasi pass-through Microsoft Entra
- Autentikasi federasi - Menyebarkan Layanan Federasi Direktori Aktif di Azure dan Microsoft Entra Connect dan federasi
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:
- Apa itu ID Microsoft Entra?
- Mengintegrasikan identitas lokal Anda dengan ID Microsoft Entra
- Menambahkan nama domain Anda ke ID Microsoft Entra
- Apa itu Federasi dengan ID Microsoft Entra?
- Sinkronisasi direktori dengan ID Microsoft Entra
- Mengelola ID Microsoft Entra menggunakan Windows PowerShell
- Port dan Protokol yang Diperlukan Identitas Hibrid.
Mengaitkan atau menambahkan langganan Azure ke ID Microsoft Entra
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.
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:
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.
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.
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.
Pilih banner di atas halaman admin Microsoft Entra dan berikan izin kepada pengguna saat ini.
Setelah operasi berhasil, pemberitahuan berikut akan muncul di sudut kanan atas:
Pada halaman admin Microsoft Entra, pilih Atur admin dari bilah navigasi untuk membuka panel ID Microsoft Entra.
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.
Dari bilah navigasi halaman admin Microsoft Entra untuk instans terkelola Anda, pilih Simpan untuk mengonfirmasi administrator Microsoft Entra Anda.
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
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.
Cari server SQL dan pilih server logis untuk Azure SQL Database Anda.
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.
Pada halaman server SQL, pilih ID Microsoft Entra.
Pada halaman ID Microsoft Entra, pilih Atur admin untuk membuka panel ID Microsoft Entra
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.
Di bagian atas halaman ID Microsoft Entra untuk server logis Anda, pilih Simpan.
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-da4c8cc7353f
objek ) 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:
- .NET Framework 4.6 atau yang lebih baru dari https://msdn.microsoft.com/library/5a4x27ek.aspx.
- Microsoft Authentication Library (MSAL) atau Microsoft Authentication Library untuk SQL Server (ADAL.DLL). Di bawah ini adalah tautan unduhan untuk menginstal driver SQL Server Management Studio (SSMS), ODBC, dan OLE DB terbaru yang ADAL.DLL perpustakaan.
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-SQLCREATE LOGIN
danCREATE 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 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.
Mulai SQL Server Management Studio atau SSDT dan dalam kotak dialog Sambungkan ke Server (atau Sambungkan ke Mesin Database), dalam kotak Autentikasi , pilih Azure Active Directory - Terintegrasi. Tidak perlu memasukkan kata sandi karena kredensial Anda yang ada disajikan untuk koneksi.
Pilih tombol Opsi, dan pada halaman Properti Koneksi, dalam kotak Sambungkan ke database, ketik nama database pengguna yang ingin Anda sambungkan.
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.
Mulai SSMS atau SSDT dan dalam kotak dialog Sambungkan ke Server (atau Sambungkan ke Mesin Database), dalam kotak Autentikasi , pilih Azure Active Directory - Kata Sandi.
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.Dalam kotak Kata Sandi , ketik kata sandi pengguna Anda untuk akun Microsoft Entra atau akun domain terkelola/federasi.
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.
Navigasi ke database SQL Anda di portal Azure. Misalnya, kunjungi dasbor Azure SQL Anda.
Pada halaman Gambaran Umum database SQL Anda di portal Azure, pilih Editor kueri dari menu sebelah kiri.
Pada layar masuk di bawah Selamat Datang di SQL Database Editor Kueri, pilih Lanjutkan sebagai <ID> pengguna atau grup Anda.
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 Menyambungkan 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:
- Daftarkan aplikasi Anda dengan ID Microsoft Entra dan dapatkan ID klien untuk kode Anda.
- Membuat pengguna database yang mewakili aplikasi. (Selesai sebelumnya di bagian Buat pengguna mandiri yang dipetakan ke identitas Microsoft Entra.)
- Buat sertifikat pada komputer klien yang menjalankan aplikasi.
- 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.