系统的存储进程 sp_helprotect, 在当前的SQL Server服务器中鉴别许可. 系统进程接受四个可选参数:
@name: 这个是数据库对象名. 这个参数的值可能可能是一个语句许可。
@username: 这个是数据库中用户的账号.这个可能是标准的SQL Server登陆或者一个Windows用户或者组登陆,它们都是数据库用户账号。
@grantorname: 这个是已经授予数据库对象许可的数据库用户账号名。
@permissionarea: 这个参数可能返回o或者s,也有可能两个一起返回。
@name参数的有效语句可能是下面的其中一个:
CREATE DATABASE
CREATE DEFAULT
CREATE FUNCTION
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE VIEW
BACKUP DATABASE
BACKUP LOG
如果没有参数被使用,sp_helprotect将返回所有被授予的许可或者拒绝所有的对象和语句许可。为了从这个进程获得输出更好的可读性,你需要以各自的形式来查看结果。
下面的脚本将展示sp_helprotect如何使用并在 Northwind 数据库中运行:
USE Northwind
GO
EXEC sp_helprotect @name = 'Orders'
GO
EXEC sp_helprotect @permissionarea = 's'
GO
EXEC sp_helprotect @permissionarea = 'o'
GO
EXEC sp_helprotect @permissionarea = 's o'
GO
首个sp_helprotect语句将会返回Orders表格的许可。其他三个系统存储进程语句将返回基于 @permissionarea参数的结果。
sql利用sp_helprotect在数据库中鉴别许可
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]
相关文章:
- mssql转移到word(2007-11-15 1:42:20)
- join 方式(2007-11-11 8:59:26)
- 数据库设计的折衷(2007-10-14 9:4:0)
- 堵死SQLServer注入漏洞(2007-9-8 1:27:12)
- 生成测试数据 T-SQL系列(2007-8-17 11:43:20)
- SQLServer性能分析(2007-7-27 7:39:49)
- Transact_SQL索引(2007-7-20 8:14:19)
- SQLServer和XML的集成(2007-7-1 9:21:28)
- SQLServer的安全性问题(结合iis和.net)(2007-6-24 1:19:48)
- 获取表中记录的总行数(2007-6-13 4:0:34)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
