sp_helprotect (Transact-SQL)

Berlaku untuk: SQL Server (semua versi yang didukung)

Mengembalikan laporan yang memiliki informasi tentang izin pengguna untuk objek, atau izin pernyataan, dalam database saat ini.

Penting

sp_helprotect tidak mengembalikan informasi tentang keamanan yang diperkenalkan pada SQL Server 2005 (9.x). Gunakan sys.database_permissions dan fn_builtin_permissions sebagai gantinya.

Tidak mencantumkan izin yang selalu ditetapkan ke peran server tetap atau peran database tetap. Tidak termasuk login atau pengguna yang menerima izin berdasarkan keanggotaan mereka dalam peran.

Ikon tautan topikKonvensi Sintaks Transact-SQL

Sintaks

  
sp_helprotect [ [ @name = ] 'object_statement' ]   
     [ , [ @username = ] 'security_account' ]   
     [ , [ @grantorname = ] 'grantor' ]   
     [ , [ @permissionarea = ] 'type' ]  

Argumen

[ @name = ] 'object_statement' Adalah nama objek dalam database saat ini, atau pernyataan, yang memiliki izin untuk melaporkan. object_statement adalah nvarchar(776), dengan default NULL, yang mengembalikan semua izin objek dan pernyataan. Jika nilai adalah objek (tabel, tampilan, prosedur tersimpan, atau prosedur tersimpan yang diperluas), itu harus menjadi objek yang valid dalam database saat ini. Nama objek dapat menyertakan kualifikasi pemilik dalam pemilik formulir.objek .

Jika object_statement adalah pernyataan, itu bisa menjadi pernyataan CREATE.

[ @username = ] 'security_account' Adalah nama utama yang izinnya dikembalikan. security_account adalah sysname, dengan default NULL, yang mengembalikan semua prinsipal dalam database saat ini. security_account harus ada di database saat ini.

[ @grantorname = ] 'grantor' Adalah nama prinsipal yang memberikan izin. pemberi adalah sysname, dengan default NULL, yang mengembalikan semua informasi untuk izin yang diberikan oleh prinsipal apa pun dalam database.

[ @permissionarea = ] 'type' Adalah string karakter yang menunjukkan apakah akan menampilkan izin objek (string karakter o), izin pernyataan (string karakter s), atau keduanya (os). jenisnya adalah varchar(10),dengan default os. jenis dapat berupa kombinasi o dan s, dengan atau tanpa koma atau spasi antara o dan s.

Mengembalikan Nilai Kode

0 (keberhasilan) atau 1 (kegagalan)

Tataan Hasil

Nama kolom Jenis data Deskripsi
Pemilik nama sysname Nama pemilik objek.
Object nama sysname Nama objek.
Penerima izin nama sysname Nama prinsipal yang izinnya diberikan.
Pemberi izin nama sysname Nama prinsipal yang memberikan izin kepada pemberi izin yang ditentukan.
ProtectType nvarchar(10) Nama jenis perlindungan:

BERIKAN PENCABUTAN
Tindakan nvarchar(60) Nama izin. Pernyataan izin yang valid bergantung pada jenis objek.
Kolom nama sysname Jenis izin:

Semua = Izin mencakup semua kolom objek saat ini.

Baru = Izin mencakup kolom baru yang mungkin diubah (dengan menggunakan pernyataan ALTER) pada objek di masa mendatang.

All+New = Kombinasi Semua dan Baru.

Mengembalikan titik jika jenis izin tidak berlaku untuk kolom.

Keterangan

Semua parameter dalam prosedur berikut bersifat opsional. Jika dijalankan tanpa parameter, sp_helprotect menampilkan semua izin yang telah diberikan atau ditolak dalam database saat ini.

Jika beberapa tetapi tidak semua parameter ditentukan, gunakan parameter bernama untuk mengidentifikasi parameter tertentu, atau NULL sebagai tempat penampung. Misalnya, untuk melaporkan semua izin untuk pemilik database pemberi izin (dbo), jalankan hal berikut:

EXEC sp_helprotect NULL, NULL, dbo;  

Atau

EXEC sp_helprotect @grantorname = 'dbo';  

Laporan output diurutkan menurut kategori izin, pemilik, objek, penerima hibah, pemberi izin, kategori jenis perlindungan, jenis perlindungan, tindakan, dan ID berurutan kolom.

Izin

Membutuhkan keanggotaan dalam peran publik .

Informasi yang dikembalikan tunduk pada pembatasan akses ke metadata. Entitas di mana prinsipal tidak memiliki izin tidak muncul. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Contoh

A. Mencantumkan izin untuk tabel

Contoh berikut mencantumkan izin untuk titles tabel.

EXEC sp_helprotect 'titles';  

B. Mencantumkan izin untuk pengguna

Contoh berikut mencantumkan semua izin yang dimiliki pengguna Judy dalam database saat ini.

EXEC sp_helprotect NULL, 'Judy';  

C. Mencantumkan izin yang diberikan oleh pengguna tertentu

Contoh berikut mencantumkan semua izin yang diberikan oleh pengguna Judy dalam database saat ini, dan digunakan NULL sebagai tempat penampung untuk parameter yang hilang.

EXEC sp_helprotect NULL, NULL, 'Judy';  

D. Mencantumkan izin pernyataan saja

Contoh berikut mencantumkan semua izin pernyataan dalam database saat ini, dan digunakan NULL sebagai tempat penampung untuk parameter yang hilang.

EXEC sp_helprotect NULL, NULL, NULL, 's';   

e. Mencantumkan izin untuk pernyataan CREATE

Contoh berikut mencantumkan semua pengguna yang telah diberikan izin CREATE TABLE.

EXEC sp_helprotect @name = 'CREATE TABLE';  

Lihat juga

Prosedur Tersimpan Keamanan (Transact-SQL)
TOLAK (Transact-SQL)
GRANT (Transact-SQL)
MENCABUT (Transact-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)