Izin Jenis GRANT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Memberikan izin pada jenis.

Konvensi sintaks transact-SQL

Sintaksis

GRANT permission  [ ,...n ] ON TYPE :: [ schema_name . ] type_name  
    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 jenis. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini.

ON TYPE :: [ schema_name. ] type_name
Menentukan jenis di mana izin diberikan. Kualifikasi cakupan (::) diperlukan. Jika schema_name tidak ditentukan, skema default akan digunakan. Jika schema_name ditentukan, kualifikasi cakupan skema (.) diperlukan.

UNTUK <database_principal> Menentukan prinsipal tempat izin diberikan.

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
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru

Menentukan pengguna database yang dipetakan ke pengguna Windows.

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

Menentukan pengguna database yang dipetakan ke grup Windows.

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

Menentukan pengguna database yang dipetakan ke sertifikat.

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

Menentukan pengguna database yang dipetakan ke kunci asimetris.

Database_user_with_no_login
Menentukan pengguna database tanpa prinsipal tingkat server yang sesuai.

Keterangan

Jenis adalah tingkat skema yang dapat diamankan yang dimuat oleh skema yang merupakan induknya dalam hierarki izin.

Penting

Izin GRANT, DENY, dan REVOKE tidak berlaku untuk jenis sistem. Jenis yang ditentukan pengguna dapat diberikan izin. Untuk informasi selengkapnya tentang jenis yang ditentukan pengguna, lihat Bekerja dengan Jenis yang Ditentukan Pengguna di SQL Server.

Izin paling spesifik dan terbatas yang dapat diberikan pada jenis tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin jenis Tersirat oleh izin jenis Tersirat oleh izin skema
CONTROL CONTROL CONTROL
EXECUTE CONTROL EXECUTE
REFERENCES CONTROL REFERENCES
AMBIL KEPEMILIKAN CONTROL CONTROL
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 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 login 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 tetap db_securityadmin , 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 tetap db_securityadmin , 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 .

Contoh

Contoh berikut memberikan VIEW DEFINITION izin dengan GRANT OPTION pada jenis PhoneNumber yang ditentukan pengguna kepada pengguna KhalidR. PhoneNumber terletak dalam skema Telemarketing.

GRANT VIEW DEFINITION ON TYPE::Telemarketing.PhoneNumber   
    TO KhalidR WITH GRANT OPTION;  
GO  

Lihat Juga

Izin Jenis DENY (Transact-SQL)
MENCABUT Izin Jenis (Transact-SQL)
CREATE TYPE (Transact-SQL)
Izin (Mesin Database)
Securable
Prinsipal (Mesin Database)