Bagikan melalui


DENY System Object Permissions (Transact-SQL)

Berlaku untuk: Database SQL ServerAzure SQL Database Azure SQL Managed Instance SQL di Microsoft Fabric

Menolak izin pada objek sistem seperti prosedur tersimpan, prosedur tersimpan yang diperluas, fungsi, dan tampilan.

Konvensi sintaks transact-SQL

Sintaks

DENY { SELECT | EXECUTE } ON [ sys.]system_object TO principal   

Argumen

[ sys.]
Kualifikasi sys hanya diperlukan ketika Anda mengacu pada tampilan katalog dan tampilan manajemen dinamis.

system_object
Menentukan objek tempat izin ditolak.

principal
Menentukan prinsipal tempat izin dicabut.

Keterangan

Pernyataan ini dapat digunakan untuk menolak izin pada prosedur tersimpan tertentu, prosedur tersimpan yang diperluas, fungsi bernilai tabel, fungsi skalar, tampilan, tampilan katalog, tampilan kompatibilitas, tampilan INFORMATION_SCHEMA, tampilan manajemen dinamis, dan tabel sistem yang diinstal oleh SQL Server. Masing-masing objek sistem ini ada sebagai catatan unik dalam database sumber daya (mssqlsystemresource). Database sumber daya bersifat baca-saja. Tautan ke objek diekspos sebagai rekaman dalam skema sys setiap database.

Resolusi nama default menyelesaikan nama prosedur yang tidak memenuhi syarat ke database sumber daya. Oleh karena itu, kualifikasi sys hanya diperlukan saat Anda menentukan tampilan katalog dan tampilan manajemen dinamis.

Perhatian

Menolak izin pada objek sistem akan menyebabkan aplikasi yang bergantung padanya gagal. SQL Server Management Studio menggunakan tampilan katalog dan mungkin tidak berfungsi seperti yang diharapkan jika Anda mengubah izin default pada tampilan katalog.

Menolak izin pada pemicu dan pada kolom objek sistem tidak didukung.

Izin pada objek sistem akan dipertahankan selama peningkatan SQL Server.

Objek sistem terlihat dalam tampilan katalog sys.system_objects . Izin pada objek sistem terlihat dalam tampilan katalog sys.database_permissions di database master .

Kueri berikut mengembalikan informasi tentang izin objek sistem:

SELECT * FROM master.sys.database_permissions AS dp   
    JOIN sys.system_objects AS so  
    ON dp.major_id = so.object_id  
    WHERE dp.class = 1 AND so.parent_object_id = 0 ;  
GO  

Izin

Memerlukan izin SERVER KONTROL.

Contoh

Contoh berikut menolak EXECUTE izin ke xp_cmdshell public.

DENY EXECUTE ON sys.xp_cmdshell TO public;  
GO  

Lihat Juga

Konvensi sintaks transact-SQL
sys.database_permissions (T-SQL)
IZIN Objek Sistem GRANT (Transact-SQL)
MENCABUT Izin Objek Sistem (Transact-SQL)