IZIN Skema GRANT (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 skema.

Konvensi sintaks transact-SQL

Sintaksis

GRANT permission  [ ,...n ] ON SCHEMA :: schema_name  
    TO database_principal [ ,...n ]  
    [ WITH GRANT OPTION ]  
    [ AS granting_principal ]  

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 skema. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini..

PADA SKEMA :: skema*_name*
Menentukan skema tempat izin diberikan. Kualifikasi cakupan :: diperlukan.

database_principal
Menentukan prinsipal tempat izin diberikan. Salah satu dari berikut ini:

  • pengguna database
  • peran database
  • peran aplikasi
  • pengguna database dipetakan ke login Windows
  • pengguna database dipetakan ke grup Windows
  • pengguna database dipetakan ke sertifikat
  • pengguna database dipetakan ke kunci asimetris
  • pengguna database tidak dipetakan ke prinsipal server.

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

AS granting_principal
Menentukan prinsipal dari mana prinsipal yang menjalankan kueri ini memperoleh haknya untuk memberikan izin. Salah satu dari berikut ini:

  • pengguna database
  • peran database
  • peran aplikasi
  • pengguna database dipetakan ke login Windows
  • pengguna database dipetakan ke grup Windows
  • pengguna database dipetakan ke sertifikat
  • pengguna database dipetakan ke kunci asimetris
  • pengguna database tidak dipetakan ke prinsipal server.

Keterangan

Penting

Kombinasi izin ALTER dan REFERENCE dalam beberapa kasus dapat memungkinkan penerima untuk melihat data atau menjalankan fungsi yang tidak sah. Misalnya: Pengguna dengan izin ALTER pada tabel dan izin REFERENSI pada fungsi dapat membuat kolom komputasi melalui fungsi dan menjalankannya. Dalam hal ini, pengguna juga harus memiliki izin SELECT pada kolom komputasi.

Skema 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 skema tercantum di bawah ini, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin skema Tersirat oleh izin skema Tersirat oleh izin database
ALTER CONTROL ALTER ANY SCHEMA
CONTROL CONTROL CONTROL
BUAT URUTAN ALTER ALTER ANY SCHEMA
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
REFERENCES CONTROL REFERENCES
SELECT CONTROL SELECT
AMBIL KEPEMILIKAN CONTROL CONTROL
UPDATE CONTROL UPDATE
LIHAT PELACAKAN PERUBAHAN CONTROL CONTROL
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Perhatian

Pengguna dengan izin ALTER pada skema dapat menggunakan rantai kepemilikan untuk mengakses securables dalam skema lain, termasuk securables yang aksesnya ditolak pengguna tersebut secara eksplisit. Ini karena rangkaian kepemilikan melewati pemeriksaan izin pada objek yang direferensikan ketika dimiliki oleh prinsipal yang memiliki objek yang merujuknya. Pengguna dengan izin ALTER pada skema dapat membuat prosedur, sinonim, dan tampilan yang dimiliki oleh pemilik skema. Objek tersebut akan memiliki akses (melalui rantai kepemilikan) ke informasi dalam skema lain yang dimiliki oleh pemilik skema. Jika memungkinkan, Anda harus menghindari pemberian izin ALTER pada skema jika pemilik skema juga memiliki skema lain.

Misalnya, masalah ini dapat terjadi dalam skenario berikut. Skenario ini mengasumsikan bahwa pengguna, yang disebut sebagai U1, memiliki izin ALTER pada skema S1. Pengguna U1 ditolak untuk mengakses objek tabel, yang disebut sebagai T1, dalam skema S2. Skema S1 dan skema S2 dimiliki oleh pemilik yang sama.

Pengguna U1 memiliki izin CREATE PROCEDURE pada database dan izin EXECUTE pada skema S1. Oleh karena itu, pengguna U1 dapat membuat prosedur tersimpan, lalu mengakses objek T1 yang ditolak dalam prosedur tersimpan.

Pengguna U1 memiliki izin CREATE SYNONYM pada database dan izin SELECT pada skema S1. Oleh karena itu, pengguna U1 dapat membuat sinonim dalam skema S1 untuk objek T1 yang ditolak, lalu mengakses objek yang ditolak T1 dengan menggunakan sinonim.

Pengguna U1 memiliki izin CREATE VIEW pada database dan izin SELECT pada skema S1. Oleh karena itu, pengguna U1 dapat membuat tampilan dalam skema S1 untuk mengkueri data dari objek T1 yang ditolak, lalu mengakses objek yang ditolak T1 dengan menggunakan tampilan.

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 menggunakan opsi AS, persyaratan tambahan ini 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 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.

Pemilik objek dapat memberikan izin pada objek yang mereka miliki. Prinsipal dengan izin CONTROL pada yang dapat diamankan dapat memberikan izin pada yang dapat diamankan.

Pemberi izin SERVER KONTROL, seperti anggota peran server tetap sysadmin, dapat memberikan izin apa pun pada setiap yang dapat diamankan di server. Pemberi izin CONTROL pada database, seperti anggota peran database tetap db_owner, dapat memberikan izin apa pun pada setiap yang dapat diamankan dalam database. Pemberi izin CONTROL pada skema dapat memberikan izin apa pun pada objek apa pun dalam skema.

Contoh

J. Memberikan izin INSERT pada skema HumanResources kepada tamu

GRANT INSERT ON SCHEMA :: HumanResources TO guest;  

B. Memberikan izin SELECT pada skema Orang ke pengguna database WilJo

GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;  

Lihat Juga

Izin Skema TOLAK (Transact-SQL)
MENCABUT Izin Skema (Transact-SQL)
GRANT (T-SQL)
Izin (Mesin Database)
Prinsipal (Mesin Database)
BUAT SERTIFIKAT (Transact-SQL)
MEMBUAT KUNCI ASIMETRIS (Transact-SQL)
MEMBUAT PERAN APLIKASI (Transact-SQL)
Hierarki Enkripsi
sys.fn_builtin_permissions (T-SQL)
sys.fn_my_permissions (T-SQL)
HAS_PERMS_BY_NAME (T-SQL)