Bagikan melalui


IZIN objek sistem GRANT (Transact-SQL)

Berlaku untuk: SQL Server Azure SQL Managed Instance

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

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

[ sys . ]

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

system_object

Menentukan objek tempat izin diberikan.

principal

Menentukan prinsipal tempat izin diberikan.

Keterangan

Pernyataan ini dapat digunakan untuk memberikan 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 server (mssqlsystemresource). Database sumber daya bersifat baca-saja. Tautan ke objek diekspos sebagai rekaman dalam skema sys setiap database. Izin untuk menjalankan atau memilih objek sistem dapat diberikan, ditolak, dan dicabut.

Memberikan izin untuk menjalankan atau memilih objek tidak selalu menyampaikan semua izin yang diperlukan untuk menggunakan objek. Sebagian besar objek melakukan operasi di mana izin tambahan diperlukan. Misalnya, pengguna yang diberikan EXECUTE izin sp_addlinkedserver tidak dapat membuat server tertaut kecuali pengguna juga merupakan anggota peran server tetap sysadmin .

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.

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

Izin pada objek sistem dipertahankan selama peningkatan SQL Server.

Anda harus berada dalam master database untuk memberikan izin, dan prinsipal yang Anda berikan izinnya harus pengguna dalam master database. Artinya, jika mereka adalah izin tingkat server, Anda tidak dapat memberikannya kepada prinsipal server, hanya prinsipal database.

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

Izin

Memerlukan izin SERVER KONTROL.

Contoh

J. Memberikan izin SELECT pada tampilan

Contoh berikut memberikan izin masuk Sylvester1 SQL Server untuk memilih tampilan yang mencantumkan login SQL Server. Contoh kemudian memberikan izin tambahan yang diperlukan untuk melihat metadata pada login SQL Server yang tidak dimiliki pengguna.

USE master;
GO
GRANT SELECT ON sys.sql_logins TO Sylvester1;
GRANT VIEW SERVER STATE to Sylvester1;
GO

B. Memberikan izin EXECUTE pada prosedur tersimpan yang diperluas

Contoh berikut memberikan EXECUTE izin ke xp_readmail Sylvester1.

USE master;
GO
GRANT EXECUTE ON xp_readmail TO Sylvester1;
GO