网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.带有ODS的体系结构中数据仓库的设.
.轻松掌握Oracle数据库Where条件执.
.SQL SERVER – 检测LOCK、终止会.
.精妙sql语句集合.
.通过两个例子讲解PIVOT/UNPIVOT的.
.最简单的SQL Server数据库存储过.
.Sql server 提示挂起问题.
.打开UDP端口1434以浏览命名实例.
.关于Sql server数据库日志满的快.
.通过查询分析器对比SQL语句的执行.
.用SQL 2005的ROW_NUMBER() 实现分.
.使用SQL Server导入和索引 Micro.
.讲解SQL Server2005数据项的分拆.
.pl/sql developer中TIMESTAMP的显.
.如何对非系统表空间的数据文件进.
.MS SQL Server查询优化方法.
.讲解三种存取备注二进制信息的方.
.用Caché的Speedminer构建和部署.
.如何恢复系统数据库如何恢复系统.
.使用Transact-SQL计算SQL Server.

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

发表日期:2007-6-24


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

语法

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'

上一篇:如何查看SQL Server 2000数据库每个表占用的磁盘空间 人气:3539
下一篇:SQL Server 存储过程的经典分页 人气:5141
浏览全部SQL Server的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐