TOLAK (Transact-SQL)

Berlaku untuk: SQL Server (semua versi yang didukung) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Menolak izin kepada kepala sekolah. Mencegah prinsipal tersebut mewarisi izin melalui grup atau keanggotaan perannya. DENY lebih diutamakan daripada semua izin, kecuali bahwa 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."

Ikon tautan topikKonvensi Sintaks Transact-SQL

Sintaks

-- Syntax for SQL Server and Azure SQL Database  
  
-- 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 }  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  
  
DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Catatan

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

Argumen

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

  • Jika yang dapat diamankan adalah database, ALL berarti BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, dan CREATE VIEW.

  • Jika yang dapat diamankan adalah fungsi skalar, ALL 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, ALL berarti EXECUTE.

  • Jika yang dapat diamankan adalah tabel, SEMUA berarti HAPUS, SISIPKAN, REFERENSI, PILIH, dan PERBARUI.

  • Jika yang dapat diamankan adalah tampilan, SEMUA berarti HAPUS, SISIPKAN, REFERENSI, PILIH, dan PERBARUI.

Catatan

Sintaks DENY ALL tidak digunakan lagi. Fitur ini akan dihapus dalam versi Microsoft 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.

HAK ISTIMEWA
Disertakan untuk kepatuhan ISO. Tidak mengubah perilaku ALL.

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

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

kelas
Menentukan kelas yang dapat diamankan di mana izin ditolak. Kualifikasi cakupan :: diperlukan.

Securable
Menentukan yang dapat diamankan di mana izin ditolak.

KEPADA prinsipal
Adalah nama 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 kepala sekolah memberikan izin. Diperlukan ketika prinsipal memiliki izin dengan GRANT OPTION.

Prinsipal AS
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, asumsikan bahwa pengguna Mary adalah principal_id 12 dan pengguna Raul adalah utama 15. Mary mengeksekusi DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Sekarang tabel sys.database_permissions akan menunjukkan bahwa grantor_prinicpal_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.

Keterangan

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

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

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

Perhatian

TOLAK tingkat tabel tidak lebih diutamakan daripada GRANT tingkat kolom. Inkonsistensi dalam hierarki izin ini telah dipertahankan demi kompatibilitas mundur. Ini akan dihapus dalam rilis mendatang.

Perhatian

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.

Perhatian

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.

Izin

Pemanggil (atau prinsipal yang ditentukan dengan opsi AS) harus memiliki izin CONTROL pada 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 CONTROL SERVER, 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.

Contoh

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

Securable Sintaks
Peran Aplikasi DENY Database Principal Permissions (Transact-SQL)
Rakitan DENY Assembly Permissions (Transact-SQL)
Kunci Asimetris TOLAK Izin Kunci Asimetris (Transact-SQL)
Grup Ketersediaan Tolak Izin Grup Ketersediaan (Transact-SQL)
Sertifikat TOLAK Izin Sertifikat (Transact-SQL)
Kontrak Deny Service Broker Permissions (Transact-SQL)
Database TOLAK Izin Database (Transact-SQL)
Kredensial Cakupan Database DENY Database Scoped Credential (Transact-SQL)
Titik akhir Tolak Izin Titik Akhir (Transact-SQL)
Katalog Full-Text TOLAK izin Full-Text (Transact-SQL)
Full-Text Stoplist TOLAK izin Full-Text (Transact-SQL)
Fungsi TOLAK Izin Objek (Transact-SQL)
Masuk DENY Server Principal Permissions (Transact-SQL)
Jenis Pesan DENY Service Broker Permissions (Transact-SQL)
Objek TOLAK Izin Objek (Transact-SQL)
Antrean TOLAK Izin Objek (Transact-SQL)
Pengikatan Layanan Jarak Jauh DENY Service Broker Permissions (Transact-SQL)
Peran DENY Database Principal Permissions (Transact-SQL)
Rute DENY Service Broker Permissions (Transact-SQL)
Skema Deny Schema Permissions (Transact-SQL)
Daftar Properti Pencarian DENY Search Property List Permissions (Transact-SQL)
Server DENY Server Permissions (Transact-SQL)
Layanan DENY Service Broker Permissions (Transact-SQL)
Prosedur Tersimpan TOLAK Izin Objek (Transact-SQL)
Kunci Konten DENY Symmetric Key Permissions (Transact-SQL)
Sinonim TOLAK Izin Objek (Transact-SQL)
Objek sistem TOLAK Izin Objek Sistem (Transact-SQL)
Tabel TOLAK Izin Objek (Transact-SQL)
Jenis Izin Jenis TOLAK (Transact-SQL)
Pengguna DENY Database Principal Permissions (Transact-SQL)
Tampilan TOLAK Izin Objek (Transact-SQL)
Koleksi Skema XML TOLAK Izin Pengumpulan Skema XML (Transact-SQL)

Lihat juga

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