Konfigurasi dan kelola autentikasi Azure Active Directory dengan Azure SQL
BERLAKU UNTUK:
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Artikel ini memperlihatkan kepada Anda cara membuat dan mengisi instans Azure Active Directory (Azure Active Directory), lalu menggunakan Azure Active Directory dengan Azure SQL Database, Azure SQL Managed Instance,dan Azure Synapse Analytics. Untuk gambaran umum, lihat Autentikasi Azure Active Directory.
Metode Autentikasi Azure Active Directory
Autentikasi Azure Active Directory mendukung metode autentikasi berikut ini:
- Identitas khusus cloud Azure Active Directory
- Identitas hibrid Azure Active Directory yang mendukung:
- Autentikasi cloud dengan dua opsi digabungkan dengan single sign-on (SSO)
- Autentikasi hash kata sandi Azure Active Directory
- Autentikasi pass-through Azure Active Directory
- Autentikasi terfederasi
- Autentikasi cloud dengan dua opsi digabungkan dengan single sign-on (SSO)
Untuk informasi selengkapnya tentang metode autentikasi Azure Active Directory, dan mana yang harus dipilih, lihat Memilih metode autentikasi yang tepat untuk solusi identitas hibrid Azure Active Directory Anda.
Untuk informasi selengkapnya tentang identitas, penyetelan, dan sinkronisasi hibrid Azure Active Directory, lihat:
- Autentikasi hash kata sandi - Menerapkan sinkronisasi hash kata sandi dengan sinkronisasi Azure Active Directory Connect
- Autentikasi pass-through - Autentikasi Pass-through Azure Active Directory
- Autentikasi Terfederasi - Menyebarkan Layanan Federasi Direktori Aktif di Azure dan Azure Active Directory Connect dan federasi
Membuat dan mengisi instans Azure Active Directory
Buat instans Azure Active Directory dan isi dengan pengguna dan grup. Azure Active Directory bisa menjadi domain terkelola Azure Active Directory awal. Azure Active Directory juga bisa menjadi Layanan Domain Direktori Aktif lokal yang diumpankan dengan Microsoft Azure Active Directory.
Untuk informasi selengkapnya, lihat:
- Mengintegrasikan identitas lokal Anda dengan Azure Active Directory
- Menambahkan nama domain Anda sendiri ke Azure Active Directory
- Microsoft Azure kini mendukung federasi dengan Active Directory lokal
- Apa yang dimaksud dengan Azure Active Directory?
- Mengelola Azure Active Directory menggunakan Windows PowerShell
- Port dan Protokol yang Diperlukan Identitas Hibrid.
Mengaitkan atau menambahkan langganan Azure ke Azure Active Directory
Kaitkan langganan Azure Anda ke Azure Active Directory dengan menjadikannya direktori tepercaya untuk langganan Azure yang menghosting database. Untuk lengkapnya, lihat Menambahkan atau Mengaitkan langganan Azure ke penyewa Azure Active Directory Anda.
Gunakan pengalih direktori di portal Microsoft Azure untuk beralih ke langganan yang terkait dengan domain.
Penting
Setiap langganan Azure memiliki hubungan kepercayaan dengan instans Azure Active Directory. Ini berarti bahwa ia mempercayai bahwa direktori untuk mengautentikasi pengguna, layanan, dan perangkat. Beberapa langganan dapat mempercayai direktori yang sama, tetapi langganan hanya mempercayai satu direktori. Hubungan kepercayaan yang memiliki langganan dengan direktori ini tidak seperti hubungan langganan dengan semua sumber daya lain di Azure (situs web, database, dan sebagainya), yang lebih mirip sumber daya anak langganan. Jika langganan kedaluwarsa, maka akses ke sumber daya lain yang terkait dengan langganan juga akan dihentikan. Tetapi direktori tetap 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 Azure Active Directory.
Admin Azure Active Directory dengan server di SQL Database
Setiap server di Azure (yang menghosting SQL Database atau Azure Synapse) dimulai dengan satu akun administrator server yang merupakan administrator dari seluruh server. Membuat akun administrator kedua sebagai akun Azure Active Directory. Dan prinsipal ini (Admin AAD) akan dibuat sebagai pengguna database mandiri dalam database master server. Akun administrator adalah anggota db_owner di setiap database pengguna, dan memasukkan setiap database pengguna sebagai pengguna dbo. Untuk informasi selengkapnya tentang akun administrator, lihat Mengelola Database dan Login.
Saat menggunakan Azure Active Directory dengan geo-replication, administrator Azure Active Directory harus dikonfigurasi untuk server utama dan sekunder. Jika server tidak memiliki administrator Azure Active Directory, maka Azure Active Directory masuk dan pengguna menerima Cannot connect kesalahan ke server.
Catatan
Pengguna yang tidak didasarkan pada akun Azure Active Directory(termasuk akun administrator server) tidak dapat membuat pengguna berbasis Azure Active Directory, karena mereka tidak memiliki izin untuk memvalidasi pengguna database yang diusulkan dengan Azure Active Directory.
Admin Provision Azure Active Directory (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 Azure Active Directory.
Di pratinjau publik, Anda bisa menetapkan peran Pembaca Direktori ke grup di Azure Active Directory. Pemilik grup kemudian dapat menambahkan identitas instans terkelola sebagai anggota grup ini, yang akan memungkinkan Anda menyediakan admin Azure Active Directory untuk SQL Managed Instance. Untuk informasi selengkapnya tentang fitur ini, lihat Peran Pembaca Direktori di Azure Active Directory untuk Azure SQL.
SQL Managed Instance Anda memerlukan izin untuk membaca Azure Active Directory untuk berhasil menyelesaikan tugas seperti autentikasi pengguna melalui keanggotaan grup keamanan atau pembuatan pengguna baru. Agar ini berfungsi, Anda perlu memberikan izin SQL Managed Instance untuk membaca Azure Active Directory. Anda dapat melakukan ini dengan menggunakan portal Microsoft Azure atau PowerShell.
portal Microsoft Azure
Untuk memberikan izin baca Azure Active Directory SQL Managed Instance Anda menggunakan portal Microsoft Azure, masuk sebagai Administrator Global di Azure Active Directory dan ikuti langkah-langkah berikut:
Di portal Microsoft Azure, di sudut kanan atas pilih akun Anda, lalu pilih Beralih direktori untuk mengonfirmasi Azure Active Directory mana yang saat ini menjadi direktori aktif Anda. Beralih direktori, jika perlu.
Pilih Direktori Aktif yang benar sebagai Azure Active Directory default.
Langkah ini menghubungkan langganan yang terkait dengan Direktori Aktif ke SQL Managed Instance, memastikan bahwa langganan yang sama digunakan untuk instans Azure Active Directory dan SQL Managed Instance.
Navigasi ke SQL Managed Instance yang ingin Anda gunakan untuk integrasi Azure Active Directory.

Pilih banner di atas halaman admin Direktori Aktif dan berikan izin kepada pengguna saat ini.
Setelah operasi berhasil, pemberitahuan berikut akan muncul di sudut kanan atas:
Sekarang Anda dapat memilih admin Azure Active Directory untuk SQL Managed Instance Anda. Untuk itu, pada halaman admin Direktori Aktif, pilih perintah Set admin.
Pada halaman admin Azure Active Directory, cari pengguna, pilih pengguna atau grup untuk menjadi administrator, lalu pilih Pilih.
Halaman admin Direktori Aktif memperlihatkan semua anggota dan grup Direktori Aktif Anda. Pengguna atau grup yang berwarna abu-abu tidak dapat dipilih karena tidak didukung sebagai administrator Azure Active Directory. Lihat daftar admin yang didukung di Fitur dan Batasan Azure Active Directory. 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.
Di bagian atas halaman admin Direktori Aktif, pilih Simpan.
Proses mengubah admin mungkin memerlukan waktu beberapa menit. Admin baru akan muncul dalam kotak admin Direktori Aktif.
Untuk pengguna dan grup Azure AD, ID Objek ditampilkan di samping nama admin. Untuk aplikasi (perwakilan layanan), ID Aplikasi ditampilkan.
Setelah menyediakan admin Azure Active Directory untuk SQL Managed Instance, Anda dapat mulai membuat prinsipal server Azure Active Directory (login) dengan sintaks BUAT LOGIN. Untuk informasi selengkapnya, lihat Ikhtisar SQL Managed Instance.
Tip
Untuk menghapus Admin nanti, di bagian atas halaman admin Direktori Aktif, pilih Hapus admin, lalu pilih Simpan.
PowerShell
Untuk memberikan izin baca Azure Active Directory SQL Managed Instance Anda dengan menggunakan PowerShell, jalankan skrip ini:
# Gives Azure Active Directory read permission to a Service Principal representing the SQL Managed Instance.
# Can be executed only by a "Global Administrator" or "Privileged Role Administrator" type of user.
$aadTenant = "<YourTenantId>" # Enter your tenant ID
$managedInstanceName = "MyManagedInstance"
# Get Azure AD role "Directory Users" and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}
Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
# Get service principal for your SQL Managed Instance
$roleMember = Get-AzureADServicePrincipal -SearchString $managedInstanceName
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No Service Principals with name '$ ($managedInstanceName)', make sure that managedInstanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: More than one service principal with name pattern '$ ($managedInstanceName)'"
Write-Output "Dumping selected service principals...."
$roleMember
exit
}
# Check if service principal is already member of readers role
$allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
$selDirReader = $allDirReaders | where{$_.ObjectId -match $roleMember.ObjectId}
if ($selDirReader -eq $null) {
# Add principal to readers role
Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role'..."
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId $roleMember.ObjectId
Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role'..."
#Write-Output "Dumping service principal '$($managedInstanceName)':"
#$allDirReaders = Get-AzureADDirectoryRoleMember -ObjectId $role.ObjectId
#$allDirReaders | where{$_.ObjectId -match $roleMember.ObjectId}
}
else {
Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role'."
}
PowerShell untuk SQL Managed Instance
Untuk menjalankan cmdlet PowerShell, Anda harus menginstal dan menjalankan Azure PowerShell. Untuk informasi selengkapnya, lihat Cara menginstal dan mengonfigurasi Azure PowerShell.
Penting
Modul PowerShell Azure Resource Manager masih didukung oleh Azure SQL Managed Instance, tetapi semua pengembangan di masa mendatang adalah untuk modul Az.Sql. Modul AzureRM akan terus menerima perbaikan bug hingga setidaknya bulan 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 menyediakan admin Azure Active Directory, jalankan perintah Azure PowerShell berikut ini:
- Connect-AzAccount
- Select-AzSubscription
Cmdlet yang digunakan untuk menyediakan dan mengelola admin Azure Active Directory untuk SQL Managed Instance Anda tercantum dalam tabel berikut:
| Nama cmdlet | Deskripsi |
|---|---|
| Set-AzSqlInstanceActiveDirectoryAdministrator | Menyediakan administrator Azure Active Directory untuk SQL Managed Instance di langganan saat ini. (Harus dari langganan saat ini) |
| Remove-AzSqlInstanceActiveDirectoryAdministrator | Menghapus administrator Azure Active Directory untuk SQL Managed Instance di langganan saat ini. |
| Remove-AzSqlInstanceActiveDirectoryAdministrator | Menghapus administrator Azure Active Directory untuk SQL Managed Instance di langganan saat ini. |
Perintah berikut ini mendapatkan informasi tentang administrator Azure Active Directory 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 Azure Active Directory bernama DBAs untuk SQL Managed Instance bernama ManagedInstance01. Peladen ini dikaitkan dengan grup sumber daya ResourceGroup01.
Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"
Perintah berikut ini menghapus administrator Azure Active Directory untuk SQL Managed Instance bernama ManagedInstanceName01 yang terkait dengan grup sumber daya ResourceGroup01.
Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru
Admin Provision Azure Active Directory (SQL Database)
Penting
Hanya ikuti langkah-langkah ini jika Anda menyediakan server untuk Database SQL atau Azure Synapse.
Dua prosedur berikut ini memperlihatkan kepada Anda cara menyediakan administrator Azure Active Directory untuk server Anda di portal Microsoft Azure dan dengan menggunakan PowerShell.
portal Microsoft Azure
Di portal Microsoft Azure, di sudut kanan atas, pilih koneksi Anda dari daftar turun bawah kemungkinan Direktori Aktif. Pilih Direktori Aktif yang benar sebagai Azure Active Directory default. Langkah ini menautkan Direktori Aktif terkait langganan dengan server yang memastikan bahwa langganan yang sama digunakan untuk Azure Active Directory dan server.
Cari dan pilih database SQL.
Catatan
Di halaman ini, sebelum Anda memilih server SQL, Anda dapat memilih bintang di samping nama untuk favorit kategori dan menambahkan server SQL ke bilah navigasi kiri.
Pada menu SQL Server, pilih Admin Direktori Aktif.
Di bagian atas halaman admin Direktori Aktif, pilih Simpan.
Pada halaman Tambah admin, cari pengguna, pilih pengguna atau grup untuk menjadi administrator, lalu pilih Select. Halaman admin Direktori Aktif memperlihatkan semua anggota dan grup Direktori Aktif Anda. Pengguna atau grup yang berwarna abu-abu tidak dapat dipilih karena tidak didukung sebagai administrator Azure Active Directory. (Lihat daftar admin yang didukung di bagian Fitur dan Batasan Azure Active Directory dari Gunakan Autentikasi Direktori Aktif Azure untuk autentikasi dengan SQL Database atau Azure Synapse.) Kontrol akses berbasis peran Azure (Azure RBAC) hanya berlaku untuk portal dan tidak disebarluaskan ke SQL Server.
Di bagian atas halaman admin Active Directory, pilih Simpan.
Untuk pengguna dan grup Azure AD, ID Objek ditampilkan di samping nama admin. Untuk aplikasi (perwakilan layanan), ID Aplikasi ditampilkan.
Proses mengubah admin mungkin memerlukan waktu beberapa menit. Admin baru akan muncul dalam kotak admin Direktori Aktif.
Catatan
Saat menyiapkan admin Azure Active Directory, nama admin baru (pengguna atau grup) belum bisa ada di database master virtual sebagai pengguna autentikasi server. Jika ada, penyetelan admin Azure Active Directory akan gagal; mengembalikan pembuatannya dan menunjukkan bahwa admin (nama) seperti itu sudah ada. Karena pengguna autentikasi server seperti itu bukan bagian dari Azure Active Directory, upaya apa pun untuk terhubung ke server menggunakan autentikasi Azure Active Directory gagal.
Selanjutnya untuk menghapus Admin, di bagian atas halaman admin Direktori Aktif, pilih Hapus admin, lalu pilih Simpan.
PowerShell untuk Database SQL dan Azure Synapse
Untuk menjalankan cmdlet PowerShell, Anda harus menginstal dan menjalankan Azure PowerShell. Untuk informasi selengkapnya, lihat Cara menginstal dan mengonfigurasi Azure PowerShell. Untuk menyediakan admin Azure Active Directory, jalankan perintah Azure PowerShell berikut ini:
- Connect-AzAccount
- Select-AzSubscription
Cmdlet yang digunakan untuk menyediakan dan mengelola admin Azure Active Directory untuk Database SQL dan Azure Synapse:
| Nama cmdlet | Deskripsi |
|---|---|
| Set-AzSqlServerActiveDirectoryAdministrator | Menyediakan administrator Azure Active Directory untuk hosting server SQL Database atau Azure Synapse. (Harus dari langganan saat ini) |
| Set-AzSqlServerActiveDirectoryAdministrator | Menyediakan administrator Azure Active Directory untuk hosting server SQL Database atau Azure Synapse. |
| Set-AzSqlServerActiveDirectoryAdministrator | Mengembalikan informasi tentang administrator Azure Active Directory yang saat ini dikonfigurasi untuk hosting server 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 Azure Active Directory bernama DBA_Group (ID 40b79501-b343-44ed-9ce7-da4c8cc7353f objek) untuk server demo_server dalam grup sumber daya bernama Grup-23:
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"
Parameter input DisplayName menerima nama tampilan Azure Active Directory atau Nama Utama Pengguna. Misalnya, DisplayName="John Smith" dan DisplayName="johns@contoso.com". Untuk grup Azure Active Directory hanya nama tampilan Azure Active Directory yang didukung.
Catatan
Perintah Azure PowerShell Set-AzSqlServerActiveDirectoryAdministrator tidak mencegah Anda memprovisi admin Azure Active Directory untuk pengguna yang tidak didukung. Pengguna yang tidak didukung dapat disediakan, 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 Azure Active Directory diperlukan saat DisplayName tidak unik. Untuk mengambil nilai ObjectIDdan DisplayName, gunakan bagian Direktori Aktif di Portal Azure Classic, dan tampilkan properti pengguna atau grup.
Contoh berikut mengembalikan informasi tentang admin Azure Active Directory saat ini untuk server:
Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List
Contoh berikut ini akan menghapus administrator Azure Active Directory:
Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"
Catatan
Anda juga dapat menyediakan Azure Active Directory Administrator dengan menggunakan REST APIs. 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 akan digunakan lagi. Jika Anda menggunakan namespace layanan System.Data.SqlClient untuk autentikasi Azure Active Directory, migrasikan aplikasi ke Microsoft.Data.SqlClient dan Microsoft Authentication Library (MSAL). Untuk informasi selengkapnya tentang menggunakan autentikasi Azure AD dengan SqlClient, lihat Menggunakan autentikasi Azure Active Directory dengan SqlClient.
SSMS dan SSDT masih menggunakan Azure Active Directory Authentication Library (ADAL). Jika Anda ingin terus menggunakan ADAL.DLL di aplikasi, Anda dapat menggunakan tautan di bagian ini untuk menginstal driver SSMS, ODBC, dan OLE DB terbaru yang berisi pustaka ADAL.DLL terbaru.
Di semua mesin klien, dari mana aplikasi atau pengguna Anda terhubung ke SQL Database atau Azure Synapse menggunakan identitas Azure Active Directory, 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 Azure Active Directory 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.
Buat pengguna mandiri terpetakan ke identitas Azure Active Directory
Karena SQL Managed Instance mendukung prinsipal server Azure Active Directory (login), menggunakan pengguna database mandiri tidak diperlukan. Server Pokok Microsoft Azure AD (masuk) memungkinkan Anda masuk dari pengguna, grup, atau aplikasi Azure Active Directory. Ini berarti Anda dapat mengautentikasi dengan SQL Managed Instance Anda dengan menggunakan login server Azure Active Directory daripada pengguna database mandiri. Untuk informasi selengkapnya, lihat Ikhtisar SQL Managed Instance. Untuk sintaks tentang membuat prinsipal server Azure Active Directory (login), lihat MEMBUAT LOGIN.
Namun, menggunakan autentikasi Azure Active Directory dengan SQL Database dan Azure Synapse mengharuskan penggunaan pengguna database mandiri berdasarkan identitas Azure Active Directory. Pengguna database mandiri tidak memiliki login dalam database master, dan memetakan ke identitas di Azure Active Directory yang terkait dengan database. Identitas Azure Active Directory dapat berupa akun pengguna individual atau grup. Untuk informasi selengkapnya tentang pengguna database mandiri, lihat Pengguna Database Mandiri - Membuat Database Anda Portabel.
Catatan
Pengguna database (tidak termasuk administrator) tidak dapat dibuat menggunakan portal Microsoft Azure. Peran Azure tidak disebarluaskan ke database di Database SQL, SQL Managed Instance, atau Azure Synapse. Peran Azure digunakan untuk mengelola Sumber Daya Azure, dan tidak berlaku untuk izin database. Misalnya, peran Kontributor SQL Server tidak memberikan akses untuk menyambungkan ke database di Database SQL, SQL Managed Instance, atau Azure Synapse. Izin akses harus diberikan langsung dalam database menggunakan pernyataan Transact-SQL.
Peringatan
Karakter khusus seperti titik dua : atau ampersand & tidak didukung saat disertakan sebagai nama pengguna dalam pernyataan T-SQL CREATE LOGIN dan CREATE USER.
Penting
Pengguna dan perwakilan layanan Azure Active Directory (aplikasi Azure Active Directory) yang merupakan anggota dari 2048 lebih grup keamanan Azure Active Directory tidak didukung untuk masuk ke database dalam SQL Database, Managed Instance, atau Azure Synapse.
Untuk membuat pengguna database berisi berbasis Azure Active Directory (selain administrator server yang memiliki database), sambungkan ke database dengan identitas Azure Active Directory, sebagai pengguna dengan setidaknya izin ALTER ANY USER. Kemudian gunakan sintaks Transact-SQL berikut:
CREATE USER [<Azure_AD_principal_name>] FROM EXTERNAL PROVIDER;
Azure_AD_principal_name dapat menjadi nama utama pengguna dari pengguna Azure Active Directory atau nama tampilan untuk grup Azure Active Directory.
Contoh: Untuk membuat pengguna database mandiri yang mewakili pengguna domain federasi atau terkelola Azure Active Directory:
CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
Untuk membuat pengguna database mandiri yang mewakili Azure Active Directory atau grup domain federasi, berikan nama tampilan grup keamanan:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Untuk membuat pengguna database mandiri yang mewakili aplikasi yang tersambung menggunakan token Azure Active Directory:
CREATE USER [appName] FROM EXTERNAL PROVIDER;
Catatan
Perintah ini mengharuskan SQL mengakses Azure Active Directory ("penyedia eksternal") atas nama pengguna yang masuk. Terkadang, keadaan akan muncul yang menyebabkan Azure Active Directory mengembalikan pengecualian kembali ke SQL. Dalam kasus ini, pengguna akan melihat kesalahan SQL 33134, yang seharusnya berisi pesan kesalahan khusus Azure Active Directory. Sebagian besar waktu, kesalahan akan mengatakan bahwa akses ditolak, atau bahwa pengguna harus mendaftar di MFA untuk mengakses sumber daya, atau bahwa akses antara aplikasi pihak pertama harus ditangani melalui pra-pengesahan. Dalam dua kasus pertama, masalah biasanya disebabkan oleh kebijakan Akses Bersyarat yang diatur dalam penyewa Azure Active Directory 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. Dalam hal kesalahan mengatakan akses antara aplikasi pihak pertama harus ditangani melalui pra-pengesahan, masalahnya adalah karena pengguna masuk sebagai prinsipal layanan. Perintah akan berhasil jika dijalankan oleh pengguna sebagai gantinya.
Tip
Anda tidak bisa langsung membuat pengguna dari Azure Active Directory selain Azure Active Directory yang terkait dengan langganan Azure Anda. Namun, anggota Direktori Aktif lainnya yang merupakan pengguna impor di Direktori Aktif terkait (dikenal sebagai pengguna eksternal) dapat ditambahkan ke grup Direktori Aktif di Direktori Aktif penyewa. Dengan membuat pengguna database mandiri untuk grup AD tersebut, pengguna dari Direktori Aktif eksternal bisa mendapatkan akses ke Azure SQL Database.
Untuk informasi selengkapnya tentang membuat pengguna database mandiri berdasarkan identitas Azure Active Directory, lihat MEMBUAT USER (Transact-SQL).
Catatan
Menghapus administrator Azure Active Directory untuk server mencegah pengguna autentikasi Azure Active Directory tersambung ke server. Jika perlu, pengguna Azure Active Directory yang tidak dapat digunakan dapat dijatuhkan secara manual oleh administrator Database SQL.
Catatan
Jika Anda menerima Batas Waktu Koneksi Kedaluwarsa, Anda mungkin perlu mengatur TransparentNetworkIPResolution parameter string koneksi menjadi salah. Untuk informasi selengkapnya, lihat Masalah batas waktu koneksi dengan.NET Framework 4.6.1 - TransparentNetworkIPResolution.
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 adalah izin apa pun yang diberikan untuk peran PUBLIK, atau izin apa pun yang diberikan kepada grup Azure Active Directory mana pun yang menjadi anggotanya. Setelah Anda menyediakan pengguna database berisi berbasis Azure Active Directory, Anda bisa memberi pengguna izin tambahan, dengan cara yang sama seperti Anda memberikan izin kepada tipe pengguna lain. Biasanya memberikan izin ke peran database, dan menambahkan pengguna ke peran. 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.
Catatan
Pengguna Azure Active Directory 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 Azure Active Directory disiapkan dengan benar, sambungkan ke database master menggunakan akun administrator Azure Active Directory. Untuk menyediakan pengguna database berisi berbasis Azure Active Directory (selain administrator server yang memiliki database), sambungkan ke database dengan identitas Azure Active Directory yang memiliki akses ke database.
Penting
Dukungan untuk autentikasi Azure Active Directory tersedia dengan SQL Server Management Studio (SSMS) mulai tahun 2016 dan SQL Server Data Tools mulai tahun 2015. Rilis SQL Server Management Studio (SSMS) agustus 2016 juga mencakup dukungan untuk Autentikasi Universal Direktori Aktif, yang memungkinkan administrator memerlukan Autentikasi Multi-Faktor menggunakan panggilan telepon, pesan teks, kartu pintar dengan pin, atau pemberitahuan aplikasi seluler.
Menggunakan identitas Azure Active Directory untuk menyambungkan menggunakan SQL Server Management Studio (SSMS) atau SQL Server Data Tools (SSDT)
Prosedur berikut ini memperlihatkan kepada Anda cara menyambungkan ke SQL Database dengan identitas Azure Active Directory menggunakan SQL Server Management Studio atau Alat Database SQL Server.
Autentikasi Terintegrasi Direktori Aktif
Gunakan metode ini jika Anda masuk ke Windows menggunakan kredensial Azure Active Directory dari domain federasi, atau domain terkelola yang dikonfigurasi untuk masuk tunggal yang mulus untuk pass-through dan autentikasi hash kata sandi. Untuk informasi selengkapnya, lihat Akses Menyeluruh tanpa batas Azure Active Directory.
Kotak dialog Mulai Studio Manajemen atau Alat Data dan di kotak dialog Sambungkan ke Server (atau Sambungkan ke Mesin Database),dalam kotak Autentikasi,pilih Azure Active Directory - Terintegrasi. Tak diperlukan kata sandi atau bisa dimasukkan karena mandat Anda yang ada akan dihadirkan untuk sambungan tersebut.

Pilih tombol Opsi, dan pada halaman Properti Koneksi, dalam kotak Sambungkan ke database, ketik nama database pengguna yang ingin Anda sambungkan. Untuk informasi selengkapnya, lihat artikel Azure Active Directory Multi-faktor auth tentang perbedaan antara Properti Koneksi untuk SQL Server Management Studio (SSMS) 17.x dan 18.x.

Autentikasi kata sandi Direktori Aktif
Gunakan metode ini saat menyambungkan dengan nama utama Azure Active Directory menggunakan domain terkelola Azure Active Directory. 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 Database SQL atau SQL Managed Instance dengan pengguna identitas khusus cloud Azure Active Directory, atau mereka yang menggunakan identitas hibrid Azure Active Directory. Metode ini mendukung pengguna yang ingin menggunakan kredensial Windows mereka, tetapi mesin 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.
Kotak dialog Mulai Studio Manajemen atau Alat Data dan di kotak dialog Sambungkan ke Server (atau Sambungkan ke Mesin Database),dalam kotak Autentikasi,pilih Azure Active Directory - Terintegrasi.
Dalam kotak Nama pengguna, ketikkan nama pengguna Azure Active Directory Anda dalam format username@domain.com. Nama pengguna harus merupakan akun dari Azure Active Directory atau akun dari domain terkelola atau federasi dengan Azure Active Directory.
Dalam kotak Kata Sandi, ketikkan kata sandi pengguna Anda untuk akun Azure Active Directory 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.)
Autentikasi Terintegrasi Direktori Aktif
Gunakan metode ini untuk autentikasi interaktif dengan atau tanpa Autentikasi Multi-Faktor (MFA), dengan kata sandi diminta secara interaktif. Gunakan metode ini untuk mengautentikasi ke database di SQL Database atau SQL Managed Instance dengan pengguna identitas khusus cloud Azure Active Directory, atau mereka yang menggunakan identitas hibrid Azure Active Directory.
Untuk informasi selengkapnya, lihat Menggunakan autentikasi Azure Active Directory multifaktor dengan SQL Database dan Azure Synapse (dukungan SQL Server Management Studio (SSMS) untuk MFA).
Menggunakan identitas Azure Active Directory untuk menyambungkan dari aplikasi klien
Prosedur berikut ini memperlihatkan kepada Anda cara menyambungkan ke Database SQL dengan identitas Azure Active Directory dari aplikasi klien.
Autentikasi Terintegrasi Direktori Aktif
Untuk menggunakan autentikasi Windows terintegrasi, Direktori Aktif domain Anda harus diberi federasi dengan Azure Active Directory, atau harus menjadi domain terkelola yang dikonfigurasi untuk masuk tunggal yang mulus untuk autentikasi hash pass-through atau kata sandi. Untuk informasi selengkapnya, lihat Akses Menyeluruh tanpa batas Azure Active Directory.
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 Azure Active Directory, kata kunci Autentikasi dalam string koneksi database harus diatur ke Active Directory Integrated. Contoh kode C# berikut menggunakan ADO.NET.
string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
Kata kunci string Integrated Security=True koneksi tidak didukung untuk menyambungkan ke Azure SQL Database. Saat membuat koneksi ODBC, Anda harus menghapus spasi dan mengatur Autentikasi ke 'ActiveDirectoryIntegrated'.
Autentikasi kata sandi Direktori Aktif
Untuk menyambungkan ke database menggunakan akun pengguna identitas khusus cloud Azure Active Directory, atau mereka yang menggunakan identitas hibrid Azure Active Directory, kata kunci Autentikasi harus diatur ke Active Directory Password. String koneksi harus berisi kata kunci dan nilai User ID/UID dan Password/PWD. Contoh kode C# berikut menggunakan ADO.NET.
string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=bob@contoso.onmicrosoft.com; PWD=MyPassWord!";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
Pelajari selengkapnya tentang metode autentikasi Azure Active Directory menggunakan sampel kode demo yang tersedia di Azure Active Directory Authentication GitHub Demo.
Azure Active Directory Token
Metode autentikasi ini memungkinkan layanan tingkat menengah untuk mendapatkan JSON Web Tokens (JWT) untuk terhubung ke database di Database SQL, SQL Managed Instance, atau Azure Synapse dengan mendapatkan token dari Azure Active Directory. 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 Azure Active Directory:
- Daftarkan aplikasi Anda dengan Azure Active Directory dan dapatkan ID klien untuk kode Anda.
- Membuat pengguna database yang mewakili aplikasi. (Selesai lebih awal di langkah 6.)
- Buat sertifikat pada komputer klien yang menjalankan aplikasi.
- Tambahkan sertifikat sebagai kunci untuk aplikasi Anda.
Contoh string koneksi:
string ConnectionString = @"Data Source=n9lxnyuzhv.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 Azure Active Directory.
sqlcmd
Pernyataan berikut, sambungkan menggunakan sqlcmd versi 13.1, yang tersedia dari Pusat Unduhan.
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 Azure Active Directory
Panduan tentang pemecahan masalah dengan autentikasi Azure Active Directory dapat ditemukan di blog berikut: https://techcommunity.microsoft.com/t5/azure-sql-database/troubleshooting-problems-related-to-azure-ad-authentication-with/ba-p/1062991
Langkah berikutnya
- Untuk gambaran umum login, pengguna, peran database, dan izin di SQL Database, lihat Login, pengguna, peran database, dan izin.
- Untuk informasi lengkap prinsipal database, lihat Prinsipal.
- Untuk informasi lengkap peran database, lihat Peran database.
- Untuk informasi lengkap aturan firewall di SQL Database, lihat Aturan firewall SQL Database.
- Untuk informasi tentang cara mengatur pengguna tamu Azure Active Directory sebagai admin Azure Active Directory, lihat Membuat pengguna tamu Azure Active Directory dan ditetapkan sebagai admin Azure Active Directory.
- Untuk informasi tentang cara melayani prinsipal dengan Azure SQL, lihat Membuat pengguna Azure Active Directory menggunakan aplikasi Azure Active Directory