系统的存储进程 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参数的结果