SQL Server-查找數據庫對象的用戶或語句權限


摘自: http://www.yesky.com/imagesnew/software/tsql/ts_sp_help_1rxw.htm

sp_helprotect

返回一個報表,報表中包含當前數據庫中某對象的用戶權限或語句權限的信息。

語法

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

列名 數據類型 描述
Owner sysname 對象所有者的名稱。
Object sysname 對象的名稱。
Grantee sysname 被授予權限的用戶的名稱。
Grantor sysname 向指定的被授權限用戶進行授權的用戶的名稱。
ProtectType char(10) 保護類型的名稱:

GRANT
REVOKE

Action varchar(20) 權限的名稱:

REFERENCES
SELECT
INSERT
DELETE
UPDATE
CREATE TABLE
CREATE DATABASE
CREATE FUNCTION
CREATE RULE
CREATE VIEW
CREATE PROCEDURE
EXECUTE
BACKUP DATABASE
CREATE DEFAULT
BACKUP LOG

Column sysname 權限的類型:

All = 權限適用於對象所有的當前列。
New = 權限適用於任何以后可以在對象上進行修改(使用 ALTER 語句)的新列。
All+New = All 和 New 的組合。

 

注釋

該過程的所有參數都是可選的。如果不帶參數執行 sp_helprotect,將顯示當前數據庫中所有已經授予或拒絕的權限。

如果指定了一部分參數,而不是指定全部參數,請使用命名參數來標識特定的參數,或者使用 NULL 作為占位符。例如,若要報告授予方 dbo 的所有權限,請執行:

EXEC sp_helprotect NULL, NULL, dbo

EXEC sp_helprotect @grantorname = 'dbo'

輸出報表按權限分類、所有者、對象、被授予方、授予方、保護類型分類、保護類型、動作以及列連續 ID 進行排序。

權限

執行權限默認授予 public 角色。

示例
A. 列出某個表的權限

下面的示例列出了表 titles 的權限。

EXEC sp_helprotect 'titles'
B. 列出某個用戶的權限

下面的示例列出當前數據庫中用戶 Judy 所擁有的所有權限。

EXEC sp_helprotect NULL, 'Judy'
C. 列出由某個特定的用戶授予的權限

下面的示例列出了當前數據庫中由用戶 Judy 授予的所有權限,使用 NULL 作為缺少的參數的占位符。

EXEC sp_helprotect NULL, NULL, 'Judy'
D. 僅列出語句權限

下面的示例列出當前數據庫中所有的語句權限,使用 NULL 作為缺少的參數的占位符。

EXEC sp_helprotect NULL, NULL, NULL, 's'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM