Bagikan melalui


Izin objek sistem DENY (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Pratinjau Microsoft Fabric

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

Konvensi sintaks transact-SQL

Syntax

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

Arguments

[ sys. ]

Kualifikasi sys hanya diperlukan saat Anda merujuk ke tampilan katalog dan tampilan manajemen dinamis.

system_object

Menentukan objek tempat izin ditolak.

principal

Menentukan prinsipal tempat izin dicabut.

Remarks

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 rekaman unik dalam database sumber daya (mssqlsystemresource). Database sumber daya bersifat baca-saja. Tautan ke objek diekspos sebagai rekaman dalam sys skema 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.

Caution

Menolak izin pada objek sistem 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 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 dalam master database.

Kueri berikut mengembalikan informasi tentang izin objek sistem:

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

Permissions

Memerlukan CONTROL SERVER izin.

Examples

Contoh berikut menolak EXECUTE izin ke xp_cmdshellpublik.

DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO