Prinsipal server Azure Active Directory

Berlaku untuk: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics (khusus kumpulan SQL)

Catatan

Prinsipal server (login) Azure Active Directory (Microsoft Azure AD) saat ini dalam pratinjau publik untuk Azure SQL Database. Azure SQL Managed Instance sudah dapat menggunakan login Microsoft Azure AD.

Anda sekarang dapat membuat dan menggunakan Azure AD prinsipal server, yang merupakan login dalam database virtual master SQL Database. Terdapat beberapa keuntungan dalam menggunakan prinsipal server Microsoft Azure AD untuk SQL Database:

  • Mendukung peran server Azure SQL Database untuk manajemen izin.
  • Mendukung beberapa pengguna Microsoft Azure AD dengan peran khusus untuk SQL Database, seperti peran loginmanager dan dbmanager.
  • Paritas fungsional antara login SQL dan login Microsoft Azure AD.
  • Tingkatkan dukungan peningkatan fungsional, seperti memanfaatkan autentikasi khusus Microsoft Azure AD. Autentikasi khusus Microsoft Azure AD memungkinkan autentikasi SQL untuk dinonaktifkan, yang mencakup admin server SQL, login SQL, dan pengguna.
  • Memungkinkan prinsipal Microsoft Azure AD mendukung replika geografis. Prinsipal Microsoft Azure AD akan dapat terhubung ke replika geografis database pengguna, dengan izin baca-saja dan menolak izin ke server utama.
  • Kemampuan untuk menggunakan login perwakilan layanan Microsoft Azure AD dengan peran khusus untuk menjalankan otomatisasi penuh pembuatan pengguna dan database, sekaligus pemeliharaan yang disediakan oleh aplikasi Microsoft Azure AD.
  • Fungsionalitas yang lebih dekat antara Instans Terkelola dan SQL Database, karena Instans Terkelola sudah mendukung Azure AD masuk dalam master database.

Untuk informasi selengkapnya mengenai autentikasi Microsoft Azure AD dalam Azure SQL, lihat Menggunakan autentikasi Microsoft Azure Active Directory

Izin

Izin berikut diperlukan untuk menggunakan atau membuat login Azure AD di database virtualmaster.

  • Izin admin atau keanggotaan Microsoft Azure AD dalam peran server loginmanager. Login Microsoft Azure AD pertama hanya dapat dibuat oleh admin Microsoft Azure AD.
  • Harus merupakan anggota Microsoft Azure AD di dalam direktori yang sama yang digunakan untuk Azure SQL Database

Secara default, izin standar yang diberikan untuk login Microsoft Azure AD yang baru dibuat di database master adalah VIEW ANY DATABASE.

Sintaksis login Microsoft Azure AD

Sintaksis baru untuk Azure SQL Database menggunakan prinsipal server Microsoft Azure AD telah diperkenalkan dengan rilis fitur ini.

Membuat sintaksis login

CREATE LOGIN login_name { FROM EXTERNAL PROVIDER | WITH <option_list> [,..] }  

<option_list> ::=      
    PASSWORD = {'password'}   
    | , SID = sid, ] 

login_name menentukan prinsipal Microsoft Azure AD, yang merupakan pengguna, grup, atau aplikasi Microsoft Azure AD.

Untuk informasi selengkapnya, lihat MEMBUAT LOGIN (Transact-SQL).

Membuat sintaksis pengguna

Sintaks T-SQL di bawah ini sudah tersedia dalam SQL Database, dan dapat digunakan untuk membuat prinsipal Azure AD tingkat database yang dipetakan ke login Azure AD di database virtualmaster.

Untuk membuat pengguna Microsoft Azure AD dari login Microsoft Azure AD, gunakan sintaksis berikut. Hanya admin Azure AD yang dapat menjalankan perintah ini di database virtualmaster.

CREATE USER user_name FROM LOGIN login_name

Untuk informasi lebih selengkapnya, lihat, CREATE USER (Transact-SQL).

Menonaktifkan atau mengaktifkan login menggunakan sintaksis ALTER LOGIN

Sintaksis DDL ALTER LOGIN (Transact-SQL) dapat digunakan untuk mengaktifkan atau menonaktifkan login Microsoft Azure AD di Azure SQL Database.

ALTER LOGIN login_name DISABLE 

Prinsipal login_name Microsoft Azure AD tidak akan dapat masuk ke database pengguna apa pun di server logis SQL Database tempat perwakilan pengguna Microsoft Azure AD, user_name yang dipetakan ke login login_name dibuat.

Catatan

  • ALTER LOGIN login_name DISABLE tidak didukung untuk pengguna yang terkandung.

  • ALTER LOGIN login_name DISABLE tidak didukung untuk grup Microsoft Azure AD.

  • Login individual yang dinonaktifkan tidak dapat dimiliki oleh pengguna yang merupakan bagian dari grup login yang dibuat dalam master database (misalnya, grup admin Azure AD).

  • Agar perubahan DISABLE atau ENABLE segera berlaku, cache autentikasi dan cache TokenAndPermUserStore harus dibersihkan menggunakan perintah T-SQL.

    DBCC FLUSHAUTHCACHE
    DBCC FREESYSTEMCACHE('TokenAndPermUserStore') WITH NO_INFOMSGS 
    

Peran untuk prinsipal Microsoft Azure AD

Peran khusus untuk SQL Database dapat ditetapkan kepada pengguna di database virtual master untuk prinsipal Azure AD, termasuk dbmanager dan loginmanager.

Azure SQL Peran server database dapat ditetapkan untuk masuk di database virtualmaster.

Untuk tutorial mengenai cara memberikan peran ini, lihat Tutorial: Membuat dan memanfaatkan login server Azure Active Directory.

Batasan dan keterangan

  • Admin server SQL tidak dapat membuat Azure AD login atau pengguna di database apa pun.
  • Mengubah kepemilikan database ke grup Microsoft Azure AD 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.
      
    • Mengubah kepemilikan database ke pengguna individual didukung.
  • Admin SQL atau pengguna SQL tidak dapat menjalankan operasi Azure AD berikut:
    • CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER
    • EXECUTE AS USER [bob@contoso.com]
    • ALTER AUTHORIZATION ON securable::name TO [bob@contoso.com]
  • Peniruan prinsipal tingkat server Microsoft Azure AD (login) tidak didukung:
  • Login Microsoft Azure AD yang tumpang tindih dengan administrator Microsoft Azure AD tidak didukung. Admin Microsoft Azure AD lebih diutamakan daripada login apa pun. Jika akun Microsoft Azure AD sudah memiliki akses ke server sebagai admin Microsoft Azure AD, baik secara langsung atau sebagai anggota grup admin, login yang dibuat untuk pengguna ini tidak akan berpengaruh apa pun. Pembuatan login tidak diblokir melalui T-SQL. Setelah akun mengautentikasi ke server, login akan memiliki izin efektif dari admin Microsoft Azure AD, dan bukan dari login yang baru dibuat.
  • Mengubah izin pada objek login Microsoft Azure AD tertentu tidak didukung:
    • GRANT <PERMISSION> ON LOGIN :: <Azure AD account> TO <Any other login>
  • Saat izin diubah untuk login Microsoft Azure AD dengan koneksi terbuka yang ada ke Azure SQL Database, izin tidak efektif hingga pengguna terhubung kembali. Juga membersihkan cache autentikasi dan cache TokenAndPermUserStore. Ini berlaku untuk perubahan keanggotaan peran server menggunakan pernyataan ALTER SERVER ROLE.
  • Mengatur info masuk Azure AD yang dipetakan ke grup Azure AD karena pemilik database tidak didukung.
  • Peran server Azure SQL Database tidak didukung untuk grup Microsoft Azure AD.
  • Perintah pembuatan skrip saat ini di SQL Server Management Studio dan di Azure Data Studio untuk pengguna Azure AD dengan login tidak menghasilkan sintaks T-SQL yang benar untuk pembuatan pengguna dengan login. Sebaliknya, skrip menghasilkan sintaks T-SQL untuk pengguna Azure AD mandiri tanpa login di database virtualmaster.
  • Untuk membedakan antara pengguna yang terkandung Azure AD tanpa login di database virtual master dan pengguna Azure AD yang dibuat dari login di database virtualmaster, lihat SIDsys.database_principals masuk, dan periksa AADE akhiran yang ditambahkan di SID kolom untuk pengguna yang dibuat dengan login.

Langkah berikutnya