Bagikan melalui


DENY Database Principal Permissions (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Menolak izin yang diberikan pada pengguna database, peran database, atau peran aplikasi di SQL Server.

Konvensi sintaks transact-SQL

Sintaksis

DENY permission [ ,...n ]    
    ON   
    {  [ USER :: database_user ]  
     | [ ROLE :: database_role ]  
     | [ APPLICATION ROLE :: application_role ]  
    }  
    TO <database_principal> [ ,...n ]  
      [ CASCADE ]  
      [ AS <database_principal> ]  
  
<database_principal> ::=  
    Database_user   
  | Database_role   
  | Application_role   
  | Database_user_mapped_to_Windows_User   
  | Database_user_mapped_to_Windows_Group   
  | Database_user_mapped_to_certificate   
  | Database_user_mapped_to_asymmetric_key   
  | Database_user_with_no_login   

Catatan

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

Argumen

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

USER ::database_user
Menentukan kelas dan nama pengguna tempat izin ditolak. Kualifikasi cakupan (::) diperlukan.

PERAN ::database_role
Menentukan kelas dan nama peran tempat izin ditolak. Kualifikasi cakupan (::) diperlukan.

PERAN APLIKASI ::application_role
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.

Menentukan kelas dan nama peran aplikasi tempat izin ditolak. Kualifikasi cakupan (::) diperlukan.

CASCADE
Menunjukkan bahwa izin yang ditolak juga ditolak untuk prinsipal lain yang telah diberikan oleh prinsipal ini.

AS <database_principal>
Menentukan prinsipal dari mana prinsipal yang menjalankan kueri ini memperoleh haknya untuk mencabut izin.

Database_user
Menentukan pengguna database.

Database_role
Menentukan peran database.

Application_role
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.

Menentukan peran aplikasi.

Database_user_mapped_to_Windows_User
Menentukan pengguna database yang dipetakan ke pengguna Windows.

Database_user_mapped_to_Windows_Group
Menentukan pengguna database yang dipetakan ke grup Windows.

Database_user_mapped_to_certificate
Menentukan pengguna database yang dipetakan ke sertifikat.

Database_user_mapped_to_asymmetric_key
Menentukan pengguna database yang dipetakan ke kunci asimetris.

Database_user_with_no_login
Menentukan pengguna database tanpa prinsipal tingkat server yang sesuai.

Keterangan

Izin Pengguna Database

Pengguna database adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat ditolak pada pengguna database tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin pengguna database Tersirat oleh izin pengguna database Tersirat oleh izin database
CONTROL CONTROL CONTROL
MENIRU CONTROL CONTROL
ALTER CONTROL MENGUBAH PENGGUNA APA PUN
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Izin Peran Database

Peran database adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat ditolak pada peran database tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin peran database Tersirat oleh izin peran database Tersirat oleh izin database
CONTROL CONTROL CONTROL
AMBIL KEPEMILIKAN CONTROL CONTROL
ALTER CONTROL MENGUBAH PERAN APA PUN
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Izin Peran Aplikasi

Peran aplikasi adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat ditolak pada peran aplikasi tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.

Izin peran aplikasi Tersirat oleh izin peran aplikasi Tersirat oleh izin database
CONTROL CONTROL CONTROL
ALTER CONTROL MENGUBAH PERAN APLIKASI APA PUN
MELIHAT DEFINISI CONTROL MELIHAT DEFINISI

Izin

Memerlukan izin CONTROL pada prinsipal yang ditentukan, atau izin yang lebih tinggi yang menyiratkan izin CONTROL.

Pemberi izin CONTROL pada database, seperti anggota peran database tetap db_owner, dapat menolak izin apa pun pada setiap yang dapat diamankan dalam database.

Contoh

J. Menolak izin CONTROL pada pengguna ke pengguna lain

Contoh berikut menolak CONTROL izin pada pengguna Wanida AdventureWorks2022 kepada pengguna RolandX.

USE AdventureWorks2022;  
DENY CONTROL ON USER::Wanida TO RolandX;  
GO  

B. Menolak izin LIHAT DEFINISI pada peran kepada pengguna yang diberikannya dengan GRANT OPTION

Contoh berikut menolak VIEW DEFINITION izin pada peran SammamishParking AdventureWorks2022 kepada pengguna JinghaoLiudatabase . Opsi CASCADE ditentukan karena pengguna JinghaoLiu diberi izin LIHAT DEFINISI DENGAN OPSI GRANT.

USE AdventureWorks2022;  
DENY VIEW DEFINITION ON ROLE::SammamishParking   
    TO JinghaoLiu CASCADE;  
GO  

C. Menolak izin IMPERSONATE pada pengguna ke peran aplikasi

Contoh berikut menolak IMPERSONATE izin pada pengguna HamithaL ke peran AccountsPayable17aplikasi AdventureWorks2022 .

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.

USE AdventureWorks2022;  
DENY IMPERSONATE ON USER::HamithaL TO AccountsPayable17;  
GO    

Lihat Juga

IZIN Utama Grant Database (Transact-SQL)
MENCABUT Izin Utama Database (Transact-SQL)
sys.database_principals (T-SQL)
sys.database_permissions (T-SQL)
CREATE USER (Transact-SQL)
MEMBUAT PERAN APLIKASI (Transact-SQL)
BUAT PERAN (Transact-SQL)
GRANT (T-SQL)
Izin (Mesin Database)
Prinsipal (Mesin Database)