DENY (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Menolak izin kepada prinsipal. Mencegah prinsipal mewarisi izin melalui grup atau keanggotaan perannya. DENY diutamakan daripada semua izin, kecuali itu DENY tidak berlaku untuk pemilik objek atau anggota peran server tetap sysadmin. Catatan Keamanan Anggota peran server tetap sysadmin dan pemilik objek tidak dapat ditolak izinnya."

Konvensi sintaks transact-SQL

Syntax

Sintaks untuk database SQL Server, Azure SQL Database, dan Fabric SQL

 
-- Simplified syntax for DENY  
DENY   { ALL [ PRIVILEGES ] } 
     | <permission>  [ ( column [ ,...n ] ) ] [ ,...n ]  
    [ ON [ <class> :: ] securable ] 
    TO principal [ ,...n ]   
    [ CASCADE] [ AS principal ]  
[;]

<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{ see the tables below }  

Sintaks untuk Azure Synapse Analytics dan Gudang Data Paralel dan gudang Microsoft Fabric

DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Arguments

ALL
Opsi ini tidak menolak semua izin yang mungkin. Menolak SEMUA setara dengan menolak izin berikut.

  • Jika yang dapat diamankan adalah database, ALL berarti BACKUP, LOG, CREATE DATABASE, CREATE TABLECREATE RULECREATE FUNCTIONCREATE DEFAULTCREATE PROCEDUREdan .CREATE VIEWBACKUPDATABASE

  • Jika yang dapat diamankan adalah fungsi skalar, SEMUA berarti EXECUTE dan REFERENCES.

  • Jika yang dapat diamankan adalah fungsi bernilai tabel, ALL berarti DELETE, INSERT, REFERENCES, SELECT, dan UPDATE.

  • Jika yang dapat diamankan adalah prosedur tersimpan, SEMUA berarti JALANKAN.

  • Jika yang dapat diamankan adalah tabel, ALL berarti DELETE, INSERT, REFERENCES, SELECT, dan UPDATE.

  • Jika yang dapat diamankan adalah tampilan, SEMUA berarti DELETE, INSERT, REFERENSI, PILIH, dan UPDATE.

Note

DENY Sintaks ALL tidak digunakan lagi. Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Tolak izin tertentu sebagai gantinya.

PRIVILEGES
Disertakan untuk kepatuhan ISO. Tidak mengubah perilaku ALL.

permission
Adalah nama izin. Pemetaan izin yang valid ke yang dapat diamankan dijelaskan dalam sub-topik yang tercantum di bawah ini.

column
Menentukan nama kolom dalam tabel tempat izin ditolak. Tanda kurung () diperlukan.

class
Menentukan kelas yang dapat diamankan tempat izin ditolak. Kualifikasi cakupan :: diperlukan.

securable
Menentukan yang dapat diamankan di mana izin ditolak.

KE kepala sekolah
Adalah nama seorang prinsipal. Prinsipal tempat izin pada yang dapat diamankan dapat ditolak bervariasi, tergantung pada yang dapat diamankan. Lihat topik khusus yang dapat diamankan yang tercantum di bawah ini untuk kombinasi yang valid.

CASCADE
Menunjukkan bahwa izin ditolak untuk prinsipal yang ditentukan dan kepada semua prinsipal lain tempat prinsipal memberikan izin. Diperlukan ketika prinsipal memiliki izin dengan GRANT OPTION.

SEBAGAI kepala sekolah
Menentukan prinsip dari mana prinsipal yang menjalankan kueri ini memperoleh haknya untuk menolak izin. Gunakan klausul utama AS untuk menunjukkan bahwa prinsipal yang dicatat sebagai penolakan izin harus menjadi prinsipal selain orang yang menjalankan pernyataan. Misalnya, anggaplah bahwa pengguna Mary adalah principal_id 12 dan pengguna Raul adalah prinsipal 15. Maria mengeksekusi DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Sekarang tabel sys.database_permissions akan menunjukkan bahwa grantor_principal_id pernyataan tolak adalah 15 (Raul) meskipun pernyataan itu benar-benar dijalankan oleh pengguna 13 (Maria).

Penggunaan AS dalam pernyataan ini tidak menyiratkan kemampuan untuk meniru pengguna lain.

Remarks

Sintaks DENY lengkap pernyataan itu kompleks. Diagram sintaks di atas disederhanakan untuk menarik perhatian pada strukturnya. Sintaks lengkap untuk menolak izin pada jaminan tertentu dijelaskan dalam topik yang tercantum di bawah ini.

DENY akan gagal jika CASCADE tidak ditentukan saat menolak izin ke prinsipal yang diberikan izin tersebut dengan GRANT OPTION yang ditentukan.

Prosedur tersimpan sistem sp_helprotect melaporkan izin pada tingkat database yang dapat diamankan.

Di Microsoft Fabric, CREATE USER tidak dapat dieksekusi secara eksplisit saat ini. Ketika GRANT atau DENY dieksekusi, pengguna akan dibuat secara otomatis.

Caution

Tingkat DENY tabel tidak lebih diutamakan daripada tingkat GRANTkolom . Ketidakkonsistensian dalam hierarki izin ini telah dipertahankan demi kompatibilitas mundur. Ini akan dihapus dalam rilis mendatang.

Caution

Menolak izin CONTROL pada database secara implisit menolak izin CONNECT pada database. Prinsipal yang ditolak izin CONTROL pada database tidak akan dapat tersambung ke database tersebut.

Caution

Menolak izin CONTROL SERVER secara implisit menolak izin CONNECT SQL di server. Prinsipal yang ditolak izin CONTROL SERVER pada server tidak akan dapat tersambung ke server tersebut.

Permissions

Pemanggil (atau prinsipal yang ditentukan dengan opsi AS) harus memiliki izin CONTROL pada izin yang dapat diamankan, atau izin yang lebih tinggi yang menyiratkan izin CONTROL pada yang dapat diamankan. Jika menggunakan opsi AS, prinsipal yang ditentukan harus memiliki izin yang dapat diamankan di mana izin ditolak.

Pemberi izin SERVER KONTROL, seperti anggota peran server tetap sysadmin, dapat menolak izin apa pun pada setiap yang dapat diamankan di server. Pemberi izin CONTROL pada database, seperti anggota peran database tetap db_owner, dapat menolak izin apa pun pada setiap yang dapat diamankan dalam database. Pemberi izin CONTROL pada skema dapat menolak izin apa pun pada objek apa pun dalam skema. Jika klausul AS digunakan, prinsipal yang ditentukan harus memiliki izin yang dapat diamankan di mana izin ditolak.

Examples

Tabel berikut mencantumkan securables dan topik yang menjelaskan sintaksis khusus yang dapat diamankan.

Securables Syntax
Peran Aplikasi DENY Izin Utama Database (Transact-SQL)
Assembly DENY Izin Perakitan (Transact-SQL)
Kunci Asimetris DENY Izin Kunci Asimetris (Transact-SQL)
Grup Ketersediaan DENY Izin Grup Ketersediaan (Transact-SQL)
Certificate DENY Izin Sertifikat (Transact-SQL)
Contract DENY Izin Service Broker (Transact-SQL)
Database DENY Izin Database (Transact-SQL)
Kredensial Cakupan Database DENY Kredensial Cakupan Database (Transact-SQL)
Endpoint DENY Izin Titik Akhir (Transact-SQL)
Full-Text Katalog DENY Full-Text Izin (Transact-SQL)
Full-Text Daftar Berhenti DENY Full-Text Izin (Transact-SQL)
Function DENY Izin Objek (Transact-SQL)
Login DENY Izin Utama Server (Transact-SQL)
Jenis Pesan DENY Izin Service Broker (Transact-SQL)
Object DENY Izin Objek (Transact-SQL)
Queue DENY Izin Objek (Transact-SQL)
Pengikatan Layanan Jarak Jauh DENY Izin Service Broker (Transact-SQL)
Role DENY Izin Utama Database (Transact-SQL)
Route DENY Izin Service Broker (Transact-SQL)
Schema DENY Izin Skema (Transact-SQL)
Daftar Properti Pencarian DENY Izin Daftar Properti Cari (Transact-SQL)
Server DENY Izin Server (Transact-SQL)
Service DENY Izin Service Broker (Transact-SQL)
Prosedur Tersimpan DENY Izin Objek (Transact-SQL)
Kunci Simetris DENY Izin Kunci Simetris (Transact-SQL)
Synonym DENY Izin Objek (Transact-SQL)
Objek Sistem DENY Izin Objek Sistem (Transact-SQL)
Table DENY Izin Objek (Transact-SQL)
Type DENY Izin Ketik (Transact-SQL)
User DENY Izin Utama Database (Transact-SQL)
View DENY Izin Objek (Transact-SQL)
Koleksi Skema XML DENY Izin Koleksi Skema XML (Transact-SQL)

Lihat Juga

REVOKE (Transact-SQL)
sp_addlogin (T-SQL)
sp_adduser (T-SQL)
sp_changedbowner (T-SQL)
sp_dropuser (T-SQL)
sp_helprotect (T-SQL)
sp_helpuser (T-SQL)