sp_helprotect (Transact-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 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.
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)