權限內容 說明 CONTROL 將類似所有權的能力授予給被授予者。被授予者實際上擁有安全對 象上已定義的所有權限 ALTER 授予更改特定安全對象的屬性(除了所有權之外)的能力。在特定范 圍授予 ALTER 權限時,也會一起授予更改、創建或刪除該范圍內 包含的任何安全對象的能力 ALTER ANY <服務器安全對象> 授予創建、更改或刪除服務器安全對象的個別實例的能力 ALTER ANY <數據庫安全對象> 授予 CREATE、ALTER 或 DROP 數據庫安全對象的個別實例的 能力 TAKE OWNERSHip 讓被授予者可以取得被授予的安全對象的所有權 CREATE <服務器安全對象> 將創建服務器安全對象的能力授予被授予者 CREATE <數據庫安全對象> 將創建數據庫安全對象的能力授予給被授予者 VIEW DEFINITION 讓被授予者能訪問元數據
表 15-4 中的“安全對象”指的是權限設置操作的作用對象,如“Create Role”中的“Role” 就是此處的安全對象。 用 T-SQL 設置權限 在 T-SQL 中設置權限可使用 GRANT(授予)、DENY(拒絕)及 REVOKE(撒銷)三個語句, 這三個語句的用法非常多,基本形式如下: GRANT ALL 或權限名稱 ON 對象 TO 用戶或角色名稱 WITH 選項 REVOKE ALL 或權限名稱 ON 對象 TO 用戶或角色名稱 CASCADE DENY ALL 或權限名稱 ON 對象 TO 用戶或角色名稱 CASCADE 每 一 語 句 都 有 三 個 元 素 , 分 別 是 權 限 名 稱 、 對 象 及 用 戶 ( 角 色 ), 如 下 (Ch15/1524Grant.sql): USE eBook GRANT SELECT ON OBJECT::dbo.members TO David GRANT REFERENCES (MemberID) ON OBJECT::dbo.Orders TO David WITH GRANT OPTION 以上語句是使用 Grant 語句分別授予權限給 David,但對象內容不同,對象名稱請以 “OBJECT::”開頭,其后最好使用完整名稱,即加上所有者。第二個 Grant 語句的作用對 象較特殊,“(MemberID) ON OBJECT:: dbo.Orders”,表示作用于 Orders 對象的 MemberID 字段,將此列的視圖權限授予 David。同時加上“WITH GRANT OPTION”,表示 David 可 再將此權限授予他人,相當于圖 15-23 的“具有授予”。 而在 Revoke 及 Deny 語句中,最后可加入 Cascade,此關鍵詞的功能是一起撤銷 To 之 后用戶可授予其他人的權限,即取消“具有授予”。 查看可用權限 由于可用權限非常多,在 T-SQL 中沒有選項可供選擇,所以使用 GRANT、DENY 及 REVOKE 時,必須首先知道權限名稱才能進行設置。讀者可查看 sys.fn_builtin_permissions、 sys.database_permissions、sys.server_permissions 三個系統數據表,如圖 15-24 所示。