sp_helprotect 是 SQL Server 內建的系統預存程序,用於報告目前資料庫中物件或陳述式的權限授與/拒絕狀態。接受四個選用參數,靈活查詢特定權限資訊。
| 參數 | 資料型別 | 說明 |
|---|---|---|
| @name | sysname | 資料庫物件名稱(資料表、檢視表、預存程序等),或陳述式權限關鍵字(如 CREATE TABLE)。 |
| @username | sysname | 資料庫使用者帳號(SQL 登入、Windows 使用者/群組)。 |
| @grantorname | sysname | 授權者帳號。 |
| @permissionarea | varchar(10) | 'o'=物件權限,'s'=陳述式權限,'o s'=兩者皆查。 |
CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATE VIEW、BACKUP DATABASE、BACKUP LOG
USE Northwind;
GO
-- 查詢 Orders 資料表的物件權限
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_helprole、sp_helprolemember 完整掌握角色成員關係。