DENY System Object Permissions (Transact-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Menolak izin pada objek sistem seperti prosedur tersimpan, prosedur tersimpan yang diperluas, fungsi, dan tampilan.
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)