Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (hanya kumpulan SQL khusus)
Anda sekarang dapat membuat dan menggunakan prinsipal server dari Microsoft Entra ID (sebelumnya Azure Active Directory), yang merupakan login dalam database virtual master Azure SQL Database dan Azure SQL Managed Instance.
Catatan
Prinsipal server Microsoft Entra (login) tersedia secara umum untuk Azure SQL Database, Azure SQL Managed Instance, dan SQL Server 2022 dan versi yang lebih baru. Prinsipal server Microsoft Entra saat ini masih dalam pratinjau publik untuk Azure Synapse Analytics.
Ada beberapa manfaat menggunakan prinsipal server Microsoft Entra dengan sumber daya Azure SQL Anda:
- Mendukung peran server Azure SQL Database untuk manajemen izin.
- Mendukung beberapa pengguna Microsoft Entra dengan peran khusus untuk SQL Database, seperti
loginmanagerdandbmanager. - Paritas fungsi antara login SQL dan login Microsoft Entra.
- Tingkatkan dukungan peningkatan fungsi, seperti menggunakan autentikasi khusus Microsoft Entra. Autentikasi Microsoft Entra-only memungkinkan autentikasi SQL dinonaktifkan, yang mencakup admin server SQL, login SQL, dan pengguna.
- Memungkinkan perwakilan Microsoft Entra mendukung replika geografis. Perwakilan Microsoft Entra dapat terhubung ke replika geografis database pengguna, dengan izin baca-saja dan tolak ke server utama.
- Gunakan login perwakilan layanan Microsoft Entra dengan peran khusus untuk sepenuhnya mengotomatiskan pembuatan dan pemeliharaan pengguna dan database dengan aplikasi Microsoft Entra.
Untuk informasi selengkapnya tentang autentikasi Microsoft Entra di Azure SQL, lihat Menggunakan autentikasi Microsoft Entra.
Izin
Izin berikut diperlukan untuk menggunakan atau membuat login Microsoft Entra di database virtual master .
- Izin administrator Microsoft Entra atau keanggotaan dalam peran server
loginmanager. Login Microsoft Entra pertama hanya dapat dibuat oleh admin Microsoft Entra. - Harus menjadi anggota ID Microsoft Entra dalam direktori yang sama yang digunakan untuk Azure SQL Database.
Secara bawaan, login Microsoft Entra yang baru dibuat di database master diberi izin VIEW ANY DATABASE.
Sintaksis perwakilan Microsoft Entra
Gunakan sintaks berikut untuk membuat dan mengelola server Microsoft Entra dan prinsipal database.
Buat login
Sintaks ini membuat login tingkat server berdasarkan identitas Microsoft Entra. Hanya admin Microsoft Entra yang dapat menjalankan perintah ini di database virtual master .
CREATE LOGIN login_name
{
FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid']
| WITH <option_list> [,..]
}
<option_list> ::=
PASSWORD = { 'password' }
[ , SID = sid ]
login_name menentukan perwakilan Microsoft Entra, yang merupakan pengguna, grup, atau aplikasi Microsoft Entra.
Untuk informasi selengkapnya, lihat MEMBUAT LOGIN (Transact-SQL).
Buat pengguna dari login
Sintaks T-SQL berikut membuat prinsipal Microsoft Entra pada tingkat database yang dipetakan ke info masuk Microsoft Entra di database virtual master. Mirip dengan sintaks untuk membuat database yang berisi pengguna Microsoft Entra, satu-satunya perbedaan adalah menentukan FROM LOGIN [login_name] daripada FROM EXTERNAL PROVIDER.
Untuk membuat pengguna Microsoft Entra dari login Microsoft Entra, gunakan sintaks berikut.
CREATE USER [user_name] FROM LOGIN [login_name]
Anda dapat menggunakan SID kolom dari sys.database_principals untuk membedakan antara pengguna database mandiri Microsoft Entra dan pengguna Microsoft Entra yang dibuat dari login. Untuk pengguna database mandiri, SID adalah deretan biner dengan panjang 16. Untuk pengguna berbasis login, SID panjangnya 18 dengan akhiran AADE .
Catatan
Menambahkan akhiran AADE ke SID adalah cara kami mengidentifikasi pengguna Microsoft Entra sebagai dibuat dari login. Namun, ini juga berarti bahwa SID untuk login dan penggunanya tidak cocok antara sys.server_principals dan sys.database_principals. Untuk menghubungkan pengguna kembali ke loginnya, akhiran AADE harus terlebih dahulu dihapus.
Untuk memahami perbedaan konseptual antara pengguna berbasis login dan pengguna database mandiri, lihat pengguna database mandiri.
Untuk informasi selengkapnya tentang semua sintaks buat pengguna, lihat CREATE USER (Transact-SQL).
Menonaktifkan atau mengaktifkan login menggunakan ALTER LOGIN
Sintaks ALTER LOGIN (Transact-SQL) DDL digunakan untuk mengaktifkan atau menonaktifkan login Microsoft Entra di Azure SQL Database.
ALTER LOGIN [login_name] DISABLE
Ketika login dinonaktifkan, koneksi tidak lagi diizinkan menggunakan prinsipal server tersebut. Ini juga menonaktifkan semua prinsipal database (pengguna) yang dibuat berdasarkan login tersebut sehingga tidak dapat terhubung ke database terkait.
Catatan
ALTER LOGIN login_name DISABLEtidak akan memengaruhi pengguna database mandiri, karena mereka tidak terkait dengan login.ALTER LOGIN login_name DISABLEtidak didukung untuk grup Microsoft Entra.Login individual yang dinonaktifkan tidak boleh milik pengguna yang merupakan bagian dari grup masuk yang dibuat dalam
masterdatabase (misalnya, grup admin Microsoft Entra).Agar perubahan
DISABLEatauENABLEsegera berlaku, cache autentikasi dan cache TokenAndPermUserStore harus dibersihkan menggunakan perintah T-SQL.DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Peran untuk perwakilan Microsoft Entra
Peran khusus untuk SQL Database dapat ditetapkan kepada pengguna dalam database virtual master untuk perwakilan Microsoft Entra, termasuk dbmanager dan loginmanager.
Peran server Azure SQL Database dapat ditetapkan ke login dalam database virtual master.
Untuk tutorial tentang cara memberikan peran ini, lihat Tutorial: Membuat dan menggunakan login server Microsoft Entra.
Batasan dan keterangan
- Admin server SQL tidak dapat membuat login Microsoft Entra atau pengguna di database apa pun.
- Admin SQL atau pengguna SQL tidak dapat menjalankan operasi Microsoft Entra berikut:
CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDERCREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDEREXECUTE AS USER [bob@contoso.com]ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
- Penyamaran sebagai prinsipal server Microsoft Entra (login) tidak didukung di Azure SQL Database dan Azure Synapse Analytics.
Didukung untuk SQL Managed Instance:
- Klausa EXECUTE AS (Transact-SQL)
- EXECUTE AS (T-SQL)
- Penyamaran sebagai prinsipal basis data Microsoft Entra (pengguna) dalam basis data pengguna didukung di semua produk Microsoft SQL.
- Login Microsoft Entra tidak dapat tumpang tindih dengan administrator Microsoft Entra. Admin Microsoft Entra diprioritaskan dibandingkan login apa pun. Jika akun Microsoft Entra sudah memiliki akses ke server sebagai admin Microsoft Entra, satu per satu atau sebagai bagian dari grup, login apa pun yang dibuat untuk akun ini tidak akan berpengaruh apa pun. Namun, pembuatan login tidak diblokir melalui T-SQL. Setelah akun mengautentikasi ke server, login akan memiliki izin yang efektif dari admin Microsoft Entra, dan bukan login yang baru dibuat.
- Mengubah izin pada objek masuk Microsoft Entra tertentu tidak didukung:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- Saat Anda mengubah izin untuk masuk Microsoft Entra, secara default perubahan hanya berlaku saat masuk berikutnya tersambung ke Azure SQL Database. Koneksi yang sudah terbuka dan terkait dengan login tersebut tidak terpengaruh. Untuk memaksa perubahan izin agar segera diterapkan, Anda dapat menghapus autentikasi dan TokenAndPermUserStore secara manual, seperti yang dijelaskan sebelumnya dalam menonaktifkan atau mengaktifkan login menggunakan ALTER LOGIN. Perilaku ini juga berlaku saat membuat perubahan keanggotaan peran server dengan ALTER SERVER ROLE.
- Di SQL Server Management Studio, perintah skrip untuk membuat pengguna tidak memeriksa apakah sudah ada login Microsoft Entra di
masterdengan nama yang sama. Ini selalu menghasilkan T-SQL untuk database mandiri pengguna Microsoft Entra. - Kesalahan dapat terjadi jika Anda mencoba membuat login atau pengguna dari prinsipal layanan dengan nama tampilan yang tidak unik. Untuk informasi selengkapnya tentang memitigasi kesalahan ini, lihat Masuk Microsoft Entra dan pengguna dengan nama tampilan yang tidak unik.
- Di Azure SQL Database dan Azure Synapse Analytics, pengguna database yang dibuat menggunakan login Microsoft Entra dapat mengalami penundaan saat diberikan peran dan izin. Jika Anda mengalami hal ini, gunakan perintah berikut untuk mengatasi masalah ini:
- Hilangkan pengguna dari database pengguna.
- Jalankan
DBCC FREESYSTEMCACHE('TokenAndPermUserStore')untuk menghapus cache keamanan pada database. - Jalankan
DBCC FLUSHAUTHCACHEuntuk menghapus cache konteks autentikasi federasi. - Buat pengguna berdasarkan login.
Batasan utama server grup Microsoft Entra
Berikut adalah batasan yang diketahui untuk login grup Microsoft Entra di Azure SQL Database dan Azure Synapse Analytics:
- Peran server Azure SQL Database tidak didukung untuk grup Microsoft Entra.
- Jika admin SQL Anda adalah grup Microsoft Entra, ada beberapa batasan saat pengguna grup tersebut tersambung. Setiap pengguna Microsoft Entra masing-masing tidak termasuk dalam tabel
sys.server_principals. Hal ini menimbulkan berbagai konsekuensi, termasuk pemanggilan keSUSER_SIDyang mengembalikanNULL. - Login pengguna Microsoft Entra yang merupakan bagian dari login grup Microsoft Entra juga tidak dibuat secara implisit, yang berarti mereka tidak akan memiliki skema default, dan tidak dapat melakukan operasi seperti
CREATE SCHEMAsampai login untuk pengguna Microsoft Entra dibuat, atau skema default ditetapkan ke grup. - Mengubah kepemilikan database ke grup Microsoft Entra sebagai pemilik database tidak didukung.
ALTER AUTHORIZATION ON database::<mydb> TO [my_aad_group]gagal dengan pesan kesalahan:Msg 33181, Level 16, State 1, Line 4 The new owner cannot be Azure Active Directory group.