TOLAK (SQL bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

Menolak izin kepada prinsipal. 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."

Topic link iconKonvensi Sintaksis T-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, SEMUA 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 mendatang. 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 securables dijelaskan dalam sub-topik yang tercantum di bawah ini.

kolom
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 aman di mana izin ditolak.

KEPADA prinsipal
Adalah nama prinsipal. Prinsipal yang izinnya diamankan dapat ditolak bervariasi, tergantung pada keamanannya. 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.

Prinsipal AS
Menentukan prinsipal 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, anggap 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 dieksekusi oleh pengguna 13 (Mary).

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 securable 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

DENY tingkat tabel tidak lebih diutamakan daripada GRANT tingkat kolom. Ketidakkonsistensian 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 pada server. Prinsipal yang ditolak izin SERVER KONTROL pada server tidak akan dapat tersambung ke server tersebut.

Izin

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 keamanan 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 TOLAK Izin Assembly (Transact-SQL)
Kunci Asimetris TOLAK Izin Kunci Asimetris (Transact-SQL)
Grup Ketersediaan TOLAK Izin Grup Ketersediaan (SQL Bertransaksi)
Sertifikat DENY Certificate Permissions (Transact-SQL)
Kontrak DENY Service Broker Permissions (Transact-SQL)
Database DENY Database Permissions (Transact-SQL)
Kredensial Cakupan Database DENY Database Scoped Credential (Transact-SQL)
Titik akhir TOLAK Izin Titik Akhir (SQL Transact)
Katalog Full-Text TOLAK Izin Full-Text (SQL Bertransaksi)
Full-Text Stoplist TOLAK Izin Full-Text (SQL Bertransaksi)
Fungsi Tolak Izin Objek (SQL Bertransaksi)
Masuk Deny Server Principal Permissions (Transact-SQL)
Jenis Pesan Izin BROKER Layanan DENY (SQL Transact)
Objek Tolak Izin Objek (SQL Bertransaksi)
Antrean Tolak Izin Objek (SQL Bertransaksi)
Pengikatan Layanan Jarak Jauh Izin BROKER Layanan DENY (SQL Transact)
Peran Tolak Izin Utama Database (SQL Transact)
Rute Izin BROKER Layanan DENY (SQL Transact)
Skema Izin Skema TOLAK (transact-SQL)
Daftar Properti Pencarian Izin Daftar Properti Pencarian TOLAK (SQL Transact)
Server Deny Server Permissions (Transact-SQL)
Layanan Izin BROKER Layanan DENY (SQL Transact)
Prosedur Tersimpan Tolak Izin Objek (SQL Bertransaksi)
Kunci Konten DENY Symmetric Key Permissions (Transact-SQL)
Sinonim Tolak Izin Objek (SQL Bertransaksi)
Objek sistem TOLAK Izin Objek Sistem (SQL Transaksi)
Tabel Tolak Izin Objek (SQL Bertransaksi)
Jenis Izin Tipe TOLAK (SQL Transaksi)
Pengguna Tolak Izin Utama Database (SQL Transact)
Tampilan Tolak Izin Objek (SQL Bertransaksi)
Koleksi Skema XML Tolak Izin Pengumpulan Skema XML (SQL Transact)

Lihat juga

MENCABUT (SQL Bertransaksi)
sp_addlogin (SQL Bertransaksi)
sp_adduser (SQL Bertransaksi)
sp_changedbowner (SQL Bertransaksi)
sp_dropuser (SQL Bertransaksi)
sp_helprotect (SQL Bertransaksi)
sp_helpuser (SQL Bertransaksi)