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.
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 o
karakter ), izin pernyataan (string s
karakter ), 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';