系統的存儲進程 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參數的結果。