欢迎光临
我们一直在努力

使用sql语句获取sql server数据库登录用户权限_数据库技巧

建站超值云服务器,限时71元/月

返回一个报表,报表中包含当前数据库中某对象的用户权限或语句权限的信息。


语法


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


参数


[@name =] object_statement


是当前数据库中要报告其权限的对象或语句的名称。object_statement 的数据类型为 nvarchar(776),默认值为 NULL,此默认值将返回所有的对象及语句权限。如果值是一个对象(表、视图、存储过程或扩展存储过程),那么它必须是当前数据库中一个有效的对象。对象名称可以包含所有者限定符,形式为 owner.object。


如果 object_statement 是一个语句,则可以为:


CREATE DATABASE


 


CREATE DEFAULT


 


CREATE FUNCTION


 


CREATE PROCEDURE


 


CREATE RULE


 


CREATE TABLE


 


CREATE VIEW


 


BACKUP DATABASE


 


BACKUP LOG


 


[@username =] security_account


是返回其权限的安全帐户名称。security_account 的数据类型为 sysname,默认值为 NULL,这个默认值将返回当前数据库中所有的安全帐户。security_account 必须是当前数据库中的有效安全帐户。当指定 Microsoft® Windows NT® 用户时,请指定该 Windows NT 用户在数据库中可被识别的名称(用 sp_grantdbaccess 添加)。


[@grantorname =] grantor


是已授权的安全帐户的名称。grantor 的数据类型为 sysname,默认值为 NULL,这个默认值将返回数据库中任何安全帐户所授权限的所有信息。当指定 Windows NT 用户时,请指定该 Windows NT 用户在数据库中可被识别的名称(用 sp_grantdbaccess 添加)。


[@permissionarea =] type


是一个字符串,表示是显示对象权限(字符串 o)、语句权限(字符串 s)还是两者都显示 (o s)。type 的数据类型为 varchar(10),默认值为 o s。type 可以是 o 和 s 的任意组合,在 o 和 s 之间可以有也可以没有逗号或空格。


返回代码值


0(成功)或 1(失败)


结果集


列名


数据类型


描述


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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 使用sql语句获取sql server数据库登录用户权限_数据库技巧
分享到: 更多 (0)