专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » 数据库查询语句:使用SQL语句获取SQL Server数据库登录用户权限 »正文

数据库查询语句:使用SQL语句获取SQL Server数据库登录用户权限

来源: 发布时间:星期五, 2008年9月26日 浏览:210次 评论:0

sp_helprotect

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

语法

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 stype 可以是 os 的任意组合,在 os 之间可以有也可以没有逗号或空格。

返回代码值

0(成功)或 1(失败)

结果集
列名数据类型描述
Ownersysname对象所有者的名称。
Objectsysname对象的名称。
Granteesysname被授予权限的用户的名称。
Grantorsysname向指定的被授权限用户进行授权的用户的名称。
ProtectTypechar(10)保护类型的名称:

GRANT
REVOKE

Actionvarchar(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

Columnsysname权限的类型:

All = 权限适用于对象所有的当前列。
New = 权限适用于任何以后可以在对象上进行修改(使用 ALTER 语句)的新列。
All+New = All 和 New 的组合。


注释

该过程的所有参数都是可选的。如果不带参数执行 sp_helprotect,将显示当前数据库中所有已经授予或拒绝的权限。

如果指定了一部分参数,而不是指定全部参数,请使用命名参数来标识特定的参数,或者使用 NULL 作为占位符。例如,若要报告授予方

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: