DENY Object Permissions (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Menolak izin pada anggota kelas OBJECT yang dapat diamankan. Ini adalah anggota kelas OBJECT: tabel, tampilan, fungsi bernilai tabel, prosedur tersimpan, prosedur tersimpan yang diperluas, fungsi skalar, fungsi agregat, antrean layanan, dan sinonim.

Konvensi sintaks transact-SQL

Sintaksis

DENY <permission> [ ,...n ] ON   
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]  
        TO <database_principal> [ ,...n ]   
    [ CASCADE ]  
        [ AS <database_principal> ]  
  
<permission> ::=  
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]  
  
<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 ditolak pada objek yang berisi skema. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini.

SEMUA
Menolak SEMUA tidak menolak semua izin yang mungkin. Menolak SEMUA setara dengan menolak semua izin ANSI-92 yang berlaku untuk objek yang ditentukan. Arti SEMUA bervariasi sebagai berikut:

  • Izin fungsi skalar: EXECUTE, REFERENCES.
  • Izin fungsi bernilai tabel: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Izin Prosedur Tersimpan: EXECUTE.
  • Izin tabel: HAPUS, SISIPKAN, REFERENSI, PILIH, PERBARUI.
  • Lihat izin: HAPUS, SISIPKAN, REFERENSI, PILIH, PERBARUI.

HAK ISTIMEWA
Disertakan untuk kepatuhan ANSI-92. Tidak mengubah perilaku ALL.

column
Menentukan nama kolom dalam tabel, tampilan, atau fungsi bernilai tabel tempat izin ditolak. Tanda kurung ( ) diperlukan. Hanya izin SELECT, REFERENCES, dan UPDATE yang dapat ditolak pada kolom. kolom dapat ditentukan dalam klausa izin atau setelah nama yang dapat diamankan.

Perhatian

TOLAK tingkat tabel tidak lebih diutamakan daripada GRANT tingkat kolom. Ketidakkonsistensian dalam hierarki izin ini telah dipertahankan untuk kompatibilitas mundur. Di SQL Server perilaku ini berbeda jika Server dikonfigurasi untuk dijalankan dengan Konfigurasi Server yang Diaktifkan Kepatuhan Kriteria Umum. Namun, ini umumnya hanya boleh digunakan dengan hati-hati dan bukan sebagai praktik umum.

ON [ OBJECT :: ] [ schema_name ] .object_name
Menentukan objek tempat izin ditolak. Frasa OBJECT bersifat opsional jika schema_name ditentukan. Jika frasa OBJECT digunakan, 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 yang izinnya ditolak.

CASCADE
Menunjukkan bahwa izin yang ditolak juga ditolak untuk prinsipal lain yang telah diberikan oleh prinsipal ini.

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

Database_user
Menentukan pengguna database.

Database_role
Menentukan peran database.

Application_role
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 objek terlihat dalam berbagai tampilan katalog. Untuk informasi selengkapnya, lihat Tampilan Katalog Objek (Transact-SQL).

Objek adalah tingkat skema yang dapat diamankan yang dimuat oleh skema yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat ditolak pada objek tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin objek Tersirat oleh izin objek Tersirat oleh izin skema
ALTER CONTROL ALTER
CONTROL CONTROL CONTROL
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
TERIMA CONTROL CONTROL
REFERENCES CONTROL REFERENCES
SELECT TERIMA SELECT
AMBIL KEPEMILIKAN CONTROL CONTROL
UPDATE CONTROL UPDATE
LIHAT PELACAKAN PERUBAHAN CONTROL LIHAT PELACAKAN PERUBAHAN
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Izin

Memerlukan izin CONTROL pada objek.

Jika Anda menggunakan klausul AS, prinsipal yang ditentukan harus memiliki objek tempat izin ditolak.

Contoh

Contoh berikut menggunakan database AdventureWorks.

J. Menolak izin SELECT pada tabel

Contoh berikut menolak SELECT izin kepada pengguna RosaQdM pada tabel Person.Address.

DENY SELECT ON OBJECT::Person.Address TO RosaQdM;  
GO  

B. Menolak izin EXECUTE pada prosedur tersimpan

Contoh berikut menolak EXECUTE izin pada prosedur HumanResources.uspUpdateEmployeeHireInfo tersimpan ke peran aplikasi yang disebut Recruiting11.

DENY EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    TO Recruiting11;  
GO   

C. Menolak izin REFERENSI pada tampilan dengan CASCADE

Contoh berikut menolak REFERENCES izin pada kolom BusinessEntityID dalam tampilan HumanResources.vEmployee kepada pengguna Wanida dengan CASCADE.

DENY REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee   
    TO Wanida CASCADE;  
GO  

Lihat Juga

IZIN Objek GRANT (Transact-SQL)
MENCABUT Izin Objek (Transact-SQL)
Tampilan Katalog Objek (Transact-SQL)
Izin (Mesin Database)
Prinsipal (Mesin Database)
Securable
sys.fn_builtin_permissions (T-SQL)
HAS_PERMS_BY_NAME (T-SQL)
sys.fn_my_permissions (T-SQL)