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.
Anda dapat membuat dan menggunakan server principal dari Microsoft Entra ID (sebelumnya Azure Active Directory) sebagai login di database virtual master dari pool SQL khusus Azure Synapse Analytics.
Catatan
Server principal Microsoft Entra saat ini masih dalam pratinjau untuk Azure Synapse Analytics.
Ada beberapa manfaat menggunakan prinsipal server Microsoft Entra dengan pool SQL khusus:
- Mendukung peran server untuk manajemen izin.
- Mendukung beberapa pengguna Microsoft Entra dengan peran khusus untuk Azure Synapse Analytics, seperti peran
loginmanagerdandbmanager. - Paritas fungsi antara login SQL dan login Microsoft Entra.
- Tingkatkan dukungan peningkatan fungsional, seperti dengan menggunakan autentikasi Microsoft Entra saja. Autentikasi khusus Microsoft Entra memungkinkan Anda menonaktifkan autentikasi SQL, yang mencakup admin server SQL, login SQL, dan pengguna.
- Gunakan login perwakilan layanan Microsoft Entra dengan peran khusus untuk sepenuhnya mengotomatiskan pembuatan dan pemeliharaan pengguna dan database dengan aplikasi Microsoft Entra.
Untuk informasi lebih lanjut, lihat autentikasi Microsoft Entra untuk Azure Synapse Analytics.
Permissions
Untuk menggunakan atau membuat login Microsoft Entra di database virtualmaster, Anda memerlukan izin berikut:
- Izin administrator Microsoft Entra atau keanggotaan dalam peran server
loginmanager. Hanya admin Microsoft Entra yang dapat membuat login Microsoft Entra pertama. - Harus menjadi anggota Microsoft Entra ID dalam direktori yang sama yang digunakan oleh Azure Synapse Analytics.
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 virtualmaster.
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 untuk mengidentifikasi pengguna Microsoft Entra sebagai pengguna yang dibuat berdasarkan 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 login-nya, Anda harus terlebih dahulu menghapus akhiran AADE.
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).
Nonaktifkan atau aktifkan login menggunakan ALTER LOGIN
Gunakan sintaks DDL ALTER LOGIN (Transact-SQL) untuk mengaktifkan atau menonaktifkan login Microsoft Entra dalam pool SQL khusus Azure Synapse Analytics.
ALTER LOGIN [login_name] DISABLE
Ketika Anda menonaktifkan login, prinsipal server tidak dapat terhubung lagi. Menonaktifkan login juga mencegah semua prinsipal basis data (pengguna) yang Anda buat dari login tersebut untuk terhubung ke basis data masing-masing.
Catatan
ALTER LOGIN login_name DISABLEtidak dapat memengaruhi pengguna database mandiri, karena mereka tidak terkait dengan login.ALTER LOGIN login_name DISABLEtidak didukung untuk grup Microsoft Entra.Login individu yang dinonaktifkan tidak dapat dikaitkan dengan pengguna yang merupakan bagian dari grup login yang Anda buat di database
master(misalnya, grup admin Microsoft Entra).Untuk membuat perubahan
DISABLEatauENABLEsegera berlaku, bersihkan cache autentikasi dan cacheTokenAndPermUserStoredengan menggunakan perintah T-SQL berikut:DBCC FLUSHAUTHCACHE DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS
Batasan dan keterangan
- Admin server SQL tidak dapat membuat login Microsoft Entra atau pengguna di database apa pun.
- Pool SQL khusus di workspace Azure Synapse Analytics tidak menggunakan server SQL logis.
- 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]
- Impersonasi Microsoft Entra server principal (login) tidak didukung untuk Azure Synapse Analytics:
- Klausa EXECUTE AS (Transact-SQL)
- EXECUTE AS (T-SQL)
- Penyamaran sebagai prinsipal basis data Microsoft Entra (pengguna) dalam basis data pengguna didukung.
- 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 terautentikasi ke server, login memiliki hak akses efektif sebagai admin Microsoft Entra, dan bukan hak akses login yang baru dibuat.
- Mengubah izin pada objek login Microsoft Entra tertentu tidak didukung:
GRANT <PERMISSION> ON LOGIN :: <Microsoft Entra account> TO <Any other login>
- Ketika Anda mengubah izin untuk login Microsoft Entra, secara default perubahan hanya berlaku saat login berikutnya terhubung ke pool SQL khusus. 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 lebih lanjut tentang cara mengurangi kesalahan ini, lihat Pertimbangan nama.
- Pengguna basis data yang dibuat menggunakan login Microsoft Entra dapat mengalami keterlambatan saat diberikan peran dan izin. Jika Anda mengalami masalah ini, gunakan perintah berikut:
- 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
Batasan berikut berlaku untuk login grup Microsoft Entra di Azure Synapse Analytics:
- Peran server tidak didukung untuk grup Microsoft Entra.
- Jika admin SQL Anda adalah grup Microsoft Entra, pengguna dari grup tersebut akan menghadapi beberapa keterbatasan saat mereka terhubung. Tidak setiap pengguna Microsoft Entra tercantum secara individual dalam tabel
sys.server_principals. Pembatasan ini memiliki berbagai konsekuensi, termasuk pemanggilan keSUSER_SIDyang mengembalikanNULL. - Login pengguna Microsoft Entra yang merupakan bagian dari login grup Microsoft Entra tidak dibuat secara implisit. Pengguna ini tidak memiliki skema default dan tidak dapat melakukan operasi seperti
CREATE SCHEMAhingga Anda membuat login untuk pengguna Microsoft Entra atau menetapkan skema default ke grup. - Anda tidak dapat mengubah kepemilikan database menjadi grup Microsoft Entra sebagai pemilik database.
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.