DENY Izin Server (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Menolak izin di server.

Konvensi sintaks transact-SQL

Sintaks

DENY permission [ ,...n ]   
    TO <grantee_principal> [ ,...n ]  
    [ CASCADE ]  
    [ AS <grantor_principal> ]   
  
<grantee_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  
  
<grantor_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  

Argumen

izin
Menentukan izin yang dapat ditolak pada server. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini.

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.

UNTUK <server_principal>
Menentukan prinsipal tempat izin ditolak.

SEBAGAI <grantor_principal>
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. Mary menjalankan 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.

SQL_Server_login
Menentukan login SQL Server.

SQL_Server_login_mapped_to_Windows_login
Menentukan login SQL Server yang dipetakan ke login Windows.

SQL_Server_login_mapped_to_Windows_group
Menentukan login SQL Server yang dipetakan ke grup Windows.

SQL_Server_login_mapped_to_certificate
Menentukan login SQL Server yang dipetakan ke sertifikat.

SQL_Server_login_mapped_to_asymmetric_key
Menentukan login SQL Server yang dipetakan ke kunci asimetris.

server_role
Menentukan peran server.

Keterangan

Izin di cakupan server hanya dapat ditolak ketika database saat ini adalah master.

Informasi tentang izin server dapat dilihat dalam tampilan katalog sys.server_permissions , dan informasi tentang prinsipal server dapat dilihat dalam tampilan katalog sys.server_principals . Informasi tentang keanggotaan peran server dapat dilihat dalam tampilan katalog sys.server_role_members .

Server adalah tingkat hierarki izin tertinggi. Izin paling spesifik dan terbatas yang dapat ditolak pada server tercantum dalam tabel berikut.

Izin server Tersirat oleh izin server
MENGELOLA OPERASI MASSAL SERVER KONTROL
MENGUBAH SEMUA AVAILABILITY GROUP

Berlaku untuk: SQL Server (SQL Server 2012 (11.x) melalui versi saat ini).
SERVER KONTROL
MENGUBAH KONEKSI APA PUN SERVER KONTROL
MENGUBAH SEMUA CREDENTIAL SERVER KONTROL
MENGUBAH SEMUA DATABASE SERVER KONTROL
MENGUBAH SEMUA ENDPOINT SERVER KONTROL
MENGUBAH SEMUA EVENT NOTIFICATION SERVER KONTROL
MENGUBAH SEMUA EVENT SESSION SERVER KONTROL
MENGUBAH SERVER TERTAUT APA PUN SERVER KONTROL
MENGUBAH SEMUA LOGIN SERVER KONTROL
MENGUBAH SEMUA SERVER AUDIT SERVER KONTROL
MENGUBAH SEMUA SERVER ROLE

Berlaku untuk: SQL Server (SQL Server 2012 (11.x) melalui versi saat ini).
SERVER KONTROL
UBAH SUMBER DAYA SERVER KONTROL
UBAH STATUS SERVER SERVER KONTROL
UBAH PENGATURAN SERVER KONTROL
UBAH JEJAK SERVER KONTROL
MENGAUTENTIKASI SERVER SERVER KONTROL
HUBUNGKAN APA SAJA DATABASE

Berlaku untuk: SQL Server (SQL Server 2014 (12.x) melalui versi saat ini).
SERVER KONTROL
SAMBUNGKAN SQL SERVER KONTROL
SERVER KONTROL SERVER KONTROL
BUAT APA SAJA DATABASE MENGUBAH SEMUA DATABASE
CREATE AVAILABILITY GROUP

Berlaku untuk: SQL Server (SQL Server 2012 (11.x) melalui versi saat ini).
MENGUBAH SEMUA AVAILABILITY GROUP
BUAT DDL EVENT NOTIFICATION MENGUBAH SEMUA EVENT NOTIFICATION
CREATE ENDPOINT MENGUBAH SEMUA ENDPOINT
CREATE SERVER ROLE

Berlaku untuk: SQL Server (SQL Server 2012 (11.x) melalui versi saat ini).
MENGUBAH SEMUA SERVER ROLE
BUAT JEJAK EVENT NOTIFICATION MENGUBAH SEMUA EVENT NOTIFICATION
AKSES EKSTERNAL ASSEMBLY SERVER KONTROL
MENIRU IDENTITAS APA PUN LOGIN

Berlaku untuk: SQL Server (SQL Server 2014 (12.x) melalui versi saat ini).
SERVER KONTROL
PILIH SEMUA USER SECURABLES

Berlaku untuk: SQL Server (SQL Server 2014 (12.x) melalui versi saat ini).
SERVER KONTROL
SHUTDOWN SERVER KONTROL
TIDAK AMAN ASSEMBLY SERVER KONTROL
VIEW APA SAJA DATABASE VIEW DEFINISI APA PUN
VIEW DEFINISI APA PUN SERVER KONTROL
VIEW DEFINISI PERFORMA APA PUN

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW DEFINISI APA PUN
VIEW DEFINISI KEAMANAN APA SAJA

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW DEFINISI APA PUN
VIEW STATUS KINERJA SERVER

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW STATUS SERVER
VIEW STATUS KEAMANAN SERVER

Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru.
VIEW STATUS SERVER
VIEW STATUS SERVER UBAH STATUS SERVER

Tiga izin server berikut ditambahkan di SQL Server 2014 (12.x).

HUBUNGKAN APA SAJA DATABASE Izin
Berikan CONNECT ANY DATABASE ke login yang harus terhubung ke semua database yang ada saat ini dan ke database baru yang mungkin dibuat di masa mendatang. Tidak memberikan izin apa pun dalam database apa pun di luar koneksi. Gabungkan dengan SELECT ALL USER SECURABLES atau VIEW SERVER STATE untuk memungkinkan proses audit untuk melihat semua data atau semua status database pada instans SQL Server.

MENIRU IDENTITAS APA PUN LOGIN Izin
Ketika diberikan, memungkinkan proses tingkat menengah untuk meniru akun klien yang terhubung ke dalamnya, karena terhubung ke database. Ketika ditolak, login dengan hak istimewa tinggi dapat diblokir agar tidak meniru login lain. Misalnya, login dengan izin CONTROL SERVER dapat diblokir agar tidak meniru login lain.

PILIH SEMUA USER Izin SECURABLES
Saat diberikan, login seperti auditor dapat melihat data di semua database yang dapat disambungkan pengguna. Ketika ditolak, mencegah akses ke objek kecuali mereka berada dalam skema sys .

Izin

Memerlukan izin CONTROL SERVER atau kepemilikan yang dapat diamankan. Jika Anda menggunakan klausul AS, prinsipal yang ditentukan harus memiliki izin yang diamankan di mana izin ditolak.

Contoh

J. Menolak izin CONNECT SQL ke login dan prinsipal SQL Server tempat login telah mencairkannya

Contoh berikut menolak CONNECT SQL izin ke login Annika SQL Server dan ke prinsipal tempat dia telah memberikan izin.

USE master;  
DENY CONNECT SQL TO Annika CASCADE;  
GO  

B. Menolak CREATE ENDPOINT izin untuk login SQL Server menggunakan opsi AS

Contoh berikut menolak CREATE ENDPOINT izin kepada pengguna ArifS. Contoh menggunakan AS opsi untuk menentukan MandarP sebagai prinsipal tempat prinsipal yang mengeksekusi memperoleh otoritas untuk melakukannya.

USE master;  
DENY CREATE ENDPOINT TO ArifS AS MandarP;  
GO