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 DATABASECREATE DEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULECREATE TABLECREATE VIEWBACKUP DATABASEBACKUP 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(失败)
结果集列名数据类型描述Ownersysname对象所有者的名称。Objectsysname对象的名称。Granteesysname被授予权限的用户的名称。Grantorsysname向指定的被授权限用户进行授权的用户的名称。ProtectTypechar(10)保护类型的名称:
GRANTREVOKE
Actionvarchar(20)权限的名称:
REFERENCESSELECTINSERTDELETEUPDATECREATE TABLECREATE DATABASECREATE FUNCTIONCREATE RULECREATE VIEWCREATE PROCEDUREEXECUTEBACKUP DATABASECREATE DEFAULTBACKUP LOG
Columnsysname权限的类型:
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'
分享到:
相关推荐
SqlServer用户权限设置 附图说明 简单易懂
在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。系统管理员对整个系统有操作权;用户数据库所有者对他所建立的数据库具有全部操作权利;一般用户对...
在机器备份的数据库到SQL Server,恢复后该数据库有一个mooip用户,该用户是数据库和一些表的所有者,但安全性里的登录中没有该用户。本文介绍了删除此类用户的方法。
SQL Server权限管理 SQL Server权限管理 SQL Server权限管理 SQL Server权限管理
设置Test用户的权限,权限包括服务器角色的权限dbcreate、能操作的数据库Accp50及对此数据的角色db_owner
利用SQL语句操作SQLserver数据库权限详解,并对SQLserver中权限树进行分析,便于入门学习
sqlserver数据库角色创建及授权,视图的应用
学习sql server 和sql 的两本经典的著作: 《sql server 2005 技术内幕 T-SQL查询》 《sql server 2005 技术内幕 T-SQL程序设计》 网上大多的资源都是英文的,好容易找到中文的了,上传上来和大家分享。 这两本书都...
sql Server 2008数据角色与权限设计。
sql server中的权限基本操作设置主键约束,unique约束
《SQL Server 2008管理员必备指南》适合所有SQL Server用户参考,更是数据库管理员的必备指南。 编辑推荐 《SQL Server 2008管理员必备指南》教你全面掌握SQL Server 2008的必备指南!这本实用指南讲述了SQL Server ...
SQLSERVER新建用户,以及权限分配,映射数据库等配置。图文并茂易学易懂
sqlserver2005创建用户并授予权限sqlserver2005创建用户并授予权限
sqlserver 2000 设置权限时,勾选比较多,费时费力,做了一个小应用程序
本文介绍了进行SQL Server批量修改权限的方法。
笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。 ├─01 安装及使用 │ SQLServer2005安装及使用.txt │ ├─02 常用函数 │ function.sql │ ├─03 建表、建库 │ create.sql ...
开通和删除SQL SERVER部分权限。sql脚本实现权限分配。
三招教你搞定sql server数据库权限冲突
注意:由于文件大小为100MB,但本人的上传权限只有60MB,所以分开两部分压缩上传。解压前必须与part2一起解压。part2在本人的资源里可以找到:http://download.csdn.net/user/lxm0918 本书通过大量实例,详细介绍...