sp_helprotect (T-SQL)

Berlaku untuk:SQL Server

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 di 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 menyertakan login atau pengguna yang menerima izin berdasarkan keanggotaan mereka dalam peran.

Konvensi 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), nilai tersebut harus menjadi objek yang valid dalam database saat ini. Nama objek dapat menyertakan kualifikasi pemilik di pemilik formulir.objek.

Jika object_statement adalah pernyataan, itu bisa menjadi pernyataan CREATE.

[ @username = ] 'security_account' Adalah nama utama tempat izin 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 utama yang memberikan izin. grantor 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.
Objek nama sysname Nama objek.
Penerima Hibah nama sysname Nama prinsipal tempat izin diberikan.
Pemberi nama sysname Nama prinsipal yang memberikan izin kepada penerima hibah yang ditentukan.
ProtectType nvarchar(10) Nama jenis perlindungan:

PENCABUTAN HIBAH
Tindakan nvarchar(60) Nama izin. Pernyataan izin yang valid bergantung pada jenis objek.
Column 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 (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, 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 di mana 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 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 (T-SQL)
MENCABUT (Transact-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)