TOLAK (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

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

Konvensi sintaks transact-SQL

Sintaksis

-- 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 and Microsoft Fabric
  
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 (12.x) dan versi 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, SEMUA berarti DATABASE CADANGAN, LOG CADANGAN, BUAT DATABASE, BUAT DEFAULT, BUAT FUNGSI, BUAT PROSEDUR, BUAT ATURAN, BUAT TABEL, dan BUAT TAMPILAN.

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

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

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

  • 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 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.

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

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

Securable
Menentukan yang dapat diamankan di mana izin ditolak.

KEPADA prinsipal
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 saat 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, 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_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 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 kepada 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 dijalankan secara eksplisit saat ini. Ketika GRANT atau DENY dijalankan, pengguna akan dibuat secara otomatis.

Perhatian

TOLAK 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 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 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.

Contoh

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

Dapat diamankan Sintaks
Peran Aplikasi DENY Database Principal Permissions (Transact-SQL)
Rakitan DENY Assembly Permissions (Transact-SQL)
Kunci Asimetris DENY Asymmetric Key Permissions (Transact-SQL)
Grup Ketersediaan Deny Availability Group Permissions (Transact-SQL)
Sertifikat Izin Sertifikat TOLAK (Transact-SQL)
Contract Izin Broker Layanan DENY (Transact-SQL)
Database Deny Database Permissions (Transact-SQL)
Kredensial Cakupan Database Kredensial Cakupan Database DENY (Transact-SQL)
Titik akhir Izin Titik Akhir DENY (Transact-SQL)
Katalog Teks Lengkap TOLAK Izin Teks Lengkap (Transact-SQL)
Daftar Henti Teks Lengkap TOLAK Izin Teks Lengkap (Transact-SQL)
Fungsi DENY Object Permissions (Transact-SQL)
Masuk Deny Server Principal Permissions (Transact-SQL)
Jenis Pesan Izin Broker Layanan DENY (Transact-SQL)
Objek DENY Object Permissions (Transact-SQL)
Antrean DENY Object Permissions (Transact-SQL)
Pengikatan Layanan Jarak Jauh Izin Broker Layanan DENY (Transact-SQL)
Peran DENY Database Principal Permissions (Transact-SQL)
Rute Izin Broker Layanan DENY (Transact-SQL)
Skema Izin Skema TOLAK (Transact-SQL)
Daftar Properti Pencarian Deny Search Property List Permissions (Transact-SQL)
Server Deny Server Permissions (Transact-SQL)
Layanan Izin Broker Layanan DENY (Transact-SQL)
Prosedur Tersimpan DENY Object Permissions (Transact-SQL)
Kunci Konten DENY Symmetric Key Permissions (Transact-SQL)
Sinonim DENY Object Permissions (Transact-SQL)
Objek sistem DENY System Object Permissions (Transact-SQL)
Tabel DENY Object Permissions (Transact-SQL)
Jenis Izin Jenis DENY (Transact-SQL)
Pengguna DENY Database Principal Permissions (Transact-SQL)
Tampilan DENY Object Permissions (Transact-SQL)
Koleksi Skema XML Tolak Izin Pengumpulan Skema XML (Transact-SQL)

Lihat Juga

MENCABUT (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)