IZIN Utama Grant Database (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Memberikan izin pada pengguna database, peran database, atau peran aplikasi di SQL Server.

Konvensi sintaks transact-SQL

Sintaksis

GRANT permission [ ,...n ]    
    ON   
    {  [ USER :: database_user ]  
     | [ ROLE :: database_role ]  
     | [ APPLICATION ROLE :: application_role ]  
    }  
    TO <database_principal> [ ,...n ]  
       [ WITH GRANT OPTION ]  
       [ AS <database_principal> ]  
  
<database_principal> ::=  
    Database_user   
  | Database_role   
  | Application_role   
  | Database_user_mapped_to_Windows_User   
  | Database_user_mapped_to_Windows_Group   
  | Database_user_mapped_to_certificate   
  | Database_user_mapped_to_asymmetric_key   
  | Database_user_with_no_login   

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

Izin
Menentukan izin yang dapat diberikan pada prinsipal database. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini.

USER ::database_user
Menentukan kelas dan nama pengguna tempat izin diberikan. Kualifikasi cakupan (::) diperlukan.

PERAN ::database_role
Menentukan kelas dan nama peran tempat izin diberikan. Kualifikasi cakupan (::) diperlukan.

PERAN APLIKASI ::application_role

Menentukan kelas dan nama peran aplikasi tempat izin diberikan. Kualifikasi cakupan (::) diperlukan.

DENGAN OPSI GRANT
Menunjukkan bahwa prinsipal juga akan diberikan kemampuan untuk memberikan izin yang ditentukan kepada prinsipal lain.

AS <database_principal>
Menentukan prinsipal dari mana prinsipal yang menjalankan kueri ini memperoleh haknya untuk memberikan izin.

Database_user
Menentukan pengguna database.

Database_role
Menentukan peran database.

Application_role
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.

Menentukan peran aplikasi.

Database_user_mapped_to_Windows_User
Menentukan pengguna database yang dipetakan ke pengguna Windows.

Database_user_mapped_to_Windows_Group

Menentukan pengguna database yang dipetakan ke grup Windows.

Database_user_mapped_to_certificate

Menentukan pengguna database yang dipetakan ke sertifikat.

Database_user_mapped_to_asymmetric_key

Menentukan pengguna database yang dipetakan ke kunci asimetris.

Database_user_with_no_login
Menentukan pengguna database tanpa prinsipal tingkat server yang sesuai.

Keterangan

Informasi tentang prinsipal database terlihat dalam tampilan katalog sys.database_principals . Informasi tentang izin tingkat database terlihat dalam tampilan katalog sys.database_permissions .

Izin Pengguna Database

Pengguna database adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada pengguna database tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin pengguna database Tersirat oleh izin pengguna database Tersirat oleh izin database
CONTROL CONTROL CONTROL
MENIRU CONTROL CONTROL
ALTER CONTROL MENGUBAH PENGGUNA APA PUN
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Izin Peran Database

Peran database adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada peran database tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin peran database Tersirat oleh izin peran database Tersirat oleh izin database
CONTROL CONTROL CONTROL
AMBIL KEPEMILIKAN CONTROL CONTROL
ALTER CONTROL MENGUBAH PERAN APA PUN
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Izin Peran Aplikasi

Peran aplikasi adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada peran aplikasi tercantum dalam hal berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin peran aplikasi Tersirat oleh izin peran aplikasi Tersirat oleh izin database
CONTROL CONTROL CONTROL
ALTER CONTROL MENGUBAH PERAN APLIKASI APA PUN
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Izin

Pemberi hibah (atau prinsipal yang ditentukan dengan opsi AS) harus memiliki izin itu sendiri dengan GRANT OPTION, atau izin yang lebih tinggi yang menyiratkan izin diberikan.

Jika Anda menggunakan opsi AS, persyaratan tambahan berikut berlaku.

AS granting_principal Izin tambahan diperlukan
Pengguna database IZIN IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.
Pengguna database dipetakan ke Pengguna Windows IZIN IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.
Pengguna database dipetakan ke Grup Windows Keanggotaan dalam grup Windows, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.
Pengguna database dipetakan ke sertifikat Keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.
Pengguna database dipetakan ke kunci asimetris Keanggotaan dalam peran database db_securityadminfixed, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.
Pengguna database tidak dipetakan ke perwakilan server mana pun IZIN IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.
Peran database UBAH izin pada peran, keanggotaan dalam peran database db_securityadminfixed, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.
Peran aplikasi UBAH izin pada peran, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin.

Prinsipal yang memiliki izin CONTROL pada yang dapat diamankan dapat memberikan izin pada yang dapat diamankan.

Pemberi izin CONTROL pada database, seperti anggota peran database tetap db_owner, dapat memberikan izin apa pun pada setiap yang dapat diamankan dalam database.

Contoh

J. Memberikan izin CONTROL pada pengguna kepada pengguna lain

Contoh berikut memberikan CONTROL izin pada AdventureWorks2022 pengguna Wanida kepada pengguna RolandX.

GRANT CONTROL ON USER::Wanida TO RolandX;  
GO  

B. Memberikan izin VIEW DEFINITION pada peran kepada pengguna dengan GRANT OPTION

Contoh berikut memberikan VIEW DEFINITION izin pada AdventureWorks2022 peran SammamishParking bersama-sama dengan GRANT OPTION pengguna JinghaoLiudatabase .

GRANT VIEW DEFINITION ON ROLE::SammamishParking   
    TO JinghaoLiu WITH GRANT OPTION;  
GO  

C. Memberikan izin IMPERSONATE pada pengguna ke peran aplikasi

Contoh berikut memberikan IMPERSONATE izin pada pengguna HamithaL ke AdventureWorks2022 peran AccountsPayable17aplikasi .

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.

GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

Lihat Juga

DENY Database Principal Permissions (Transact-SQL)
MENCABUT Izin Utama Database (Transact-SQL)
sys.database_principals (T-SQL)
sys.database_permissions (T-SQL)
CREATE USER (Transact-SQL)
MEMBUAT PERAN APLIKASI (Transact-SQL)
BUAT PERAN (Transact-SQL)
GRANT (T-SQL)
Izin (Mesin Database)
Prinsipal (Mesin Database)