Bagikan melalui


sp_helprotect (T-SQL)

Berlaku untuk: SQL Server

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

Penting

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

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

Konvensi sintaks transact-SQL

Sintaks

sp_helprotect
    [ [ @name = ] N'name' ]
    [ , [ @username = ] N'username' ]
    [ , [ @grantorname = ] N'grantorname' ]
    [ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]

Argumen

[ @name = ] N'name'

Nama objek dalam database saat ini, atau pernyataan, itulah izin untuk melaporkan. @name 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), nilai tersebut harus menjadi objek yang valid dalam database saat ini. Nama objek dapat menyertakan kualifikasi pemilik dalam formulir <owner>.<object>.

Jika @name adalah pernyataan, itu bisa menjadi CREATE pernyataan.

[ @username = ] N'username'

Nama utama tempat izin dikembalikan. @username adalah sysname, dengan default NULL, yang mengembalikan semua prinsipal dalam database saat ini. @username harus ada di database saat ini.

[ @grantorname = ] N'grantorname'

Nama prinsipal yang memberikan izin. @grantorname adalah sysname, dengan default NULL, yang mengembalikan semua informasi untuk izin yang diberikan oleh prinsipal apa pun dalam database.

[ @permissionarea = ] 'permissionarea'

String karakter yang menunjukkan apakah akan menampilkan izin objek (string okarakter ), izin pernyataan (string skarakter ), atau keduanya (o s). @permissionarea adalah varchar(10), dengan default o s. @permissionarea dapat berupa kombinasi o dan s, dengan atau tanpa koma atau spasi antara o dan s.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Nama kolom Jenis data Deskripsi
Owner nama sysname Nama pemilik objek.
Object nama sysname Nama objek.
Grantee nama sysname Nama prinsipal tempat izin diberikan.
Grantor nama sysname Nama prinsipal yang memberikan izin kepada penerima hibah yang ditentukan.
ProtectType nvarchar(10) Nama jenis perlindungan:

GRANT REVOKE
Action nvarchar(60) Nama izin. Pernyataan izin yang valid bergantung pada jenis objek.
Column nama sysname Jenis izin:

All = Izin mencakup semua kolom objek saat ini.
New = Izin mencakup kolom baru yang mungkin diubah (dengan menggunakan ALTER pernyataan) pada objek di masa mendatang.
All+New = Kombinasi dan All New.

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 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 (dbo), jalankan skrip berikut:

EXEC sp_helprotect NULL, NULL, dbo;

Atau

EXEC sp_helprotect @grantorname = 'dbo';

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

Izin

Memerlukan keanggotaan dalam peran publik .

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

Contoh

J. 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 CREATE TABLE semua pengguna yang diberi izin.

EXEC sp_helprotect @name = 'CREATE TABLE';