GRANT (Transact-SQL)

更新: 2006 年 12 月 12 日

將安全性實體的權限授與某個主體。

語法

Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
      | permission [ ( column [ ,...n ] ) ] [ ,...n ]
      [ ON [ class :: ] securable ] TO principal [ ,...n ] 
      [ WITH GRANT OPTION ] [ AS principal ]

引數

  • ALL
    這個選項已被取代,只保留回溯相容性。它不會授與所有可能的權限。授與 ALL 等同於授與下列權限。

    • 如果安全性實體是資料庫,"ALL" 表示 BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE 和 CREATE VIEW。
    • 如果安全性實體是純量函數,"ALL" 表示 EXECUTE 和 REFERENCES。
    • 如果安全性實體是資料表值函數,"ALL" 表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
    • 如果安全性實體是預存程序,則 "ALL" 表示 EXECUTE。
    • 如果安全性實體是資料表,"ALL" 表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
    • 如果安全性實體是檢視,"ALL" 表示 DELETE、INSERT、REFERENCES、SELECT 和 UPDATE。
  • PRIVILEGES
    為符合 SQL-92 而包含這個項目。不會變更 ALL 的行為。
  • permission
    權限的名稱。權限對安全性實體的有效對應描述於下列子主題中。
  • column
    指定正在授與權限的資料表中資料行的名稱。它必須用括號 "()" 括住。
  • class
    指定正在授與權限之安全性實體的類別。需要範圍限定詞 "::"。
  • securable
    指定要授與其權限的安全性實體。
  • TO principal
    主體的名稱。可以被授與安全性實體權限的主體,隨著安全性實體而不同。如需有效的組合,請參閱下列子主題。
  • GRANT OPTION
    指出也會提供被授與者授與指定權限給其他主體的能力。
  • AS principal
    指定主體,執行這項查詢的主體就是從這個主體衍生權限來授與權限。

備註

GRANT 陳述式的完整語法相當複雜。上述語法圖已簡化,以強調其結構。授與特定安全性實體權限的完整語法描述於下列主題中。

REVOKE 陳述式可用來移除授與的權限,而 DENY 陳述式可用來避免主體透過 GRANT 取得特定權限。

授與權限會移除指定安全性實體權限的 DENY 或 REVOKE。如果相同權限在包含安全性實體的更高範圍被拒絕,則 DENY 的優先順序較高。但是在更高範圍撤銷授與權限的優先順序並不會比較高。

資料庫層級權限是在指定資料庫的範圍內授與。如果使用者必須具有其他資料庫中的物件權限,應在其他資料庫中建立使用者帳戶,或將使用者帳戶存取權授與其他資料庫和目前的資料庫。

ms187965.Caution(zh-tw,SQL.90).gif注意:
在 SQL Server 2005 中,資料表層級的 DENY 不會優先於資料行層級的 GRANT。保留權限階層中這項不一致的目的,是為了與舊版相容。未來的版本將予以移除。

sp_helprotect 系統預存程序會報告資料庫層級安全性實體的權限。

權限

同意授權者 (或是指定了 AS 選項的主體) 必須具有指定了 GRANT OPTION 的權限本身,或是具有隱含目前正在授與權限的更高權限。如果是使用 AS 選項,就必須套用額外的需求。如需詳細資料,請參閱安全性實體特定主題。

物件擁有者可以授與他們所擁有之物件的權限。具有安全性實體之 CONTROL 權限的主體可以授與該安全性實體的權限。

CONTROL SERVER 權限的被授與者 (例如系統管理員 (sysadmin) 固定伺服器角色的成員),可以授與伺服器中任何安全性實體的任何權限。資料庫之 CONTROL 權限的被授與者 (例如 db_owner 固定資料庫角色的成員),可以授與資料庫中任何安全性實體的任何權限。結構描述之 CONTROL 權限的被授與者,可以授與結構描述中任何物件的任何權限。

範例

如需安全性實體特定語法,請參閱下列主題。

應用程式角色

GRANT 資料庫主體權限 (Transact-SQL)

組件

GRANT 組件權限 (Transact-SQL)

非對稱金鑰

GRANT 非對稱金鑰權限 (Transact-SQL)

憑證

GRANT 憑證權限 (Transact-SQL)

合約

GRANT Service Broker 權限 (Transact-SQL)

資料庫

GRANT 資料庫權限 (Transact-SQL)

端點

GRANT 端點權限 (Transact-SQL)

全文檢索目錄

GRANT 全文檢索目錄權限 (Transact-SQL)

函數

GRANT 物件權限 (Transact-SQL)

登入

GRANT 伺服器主體權限 (Transact-SQL)

訊息類型

GRANT Service Broker 權限 (Transact-SQL)

物件

GRANT 物件權限 (Transact-SQL)

佇列

GRANT 物件權限 (Transact-SQL)

遠端服務繫結

GRANT Service Broker 權限 (Transact-SQL)

角色

GRANT 資料庫主體權限 (Transact-SQL)

路由

GRANT Service Broker 權限 (Transact-SQL)

結構描述

GRANT 結構描述權限 (Transact-SQL)

伺服器

GRANT 伺服器權限 (Transact-SQL)

服務

GRANT Service Broker 權限 (Transact-SQL)

預存程序

GRANT 物件權限 (Transact-SQL)

對稱金鑰

GRANT 對稱金鑰權限 (Transact-SQL)

同義字

GRANT 物件權限 (Transact-SQL)

系統物件

GRANT 系統物件權限 (Transact-SQL)

資料表

GRANT 物件權限 (Transact-SQL)

類型

GRANT 類型權限 (Transact-SQL)

使用者

GRANT 資料庫主體權限 (Transact-SQL)

檢視

GRANT 物件權限 (Transact-SQL)

XML 結構描述集合

GRANT XML 結構描述集合權限 (Transact-SQL)

請參閱

參考

DENY (Transact-SQL)
REVOKE (Transact-SQL)
sp_addgroup (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changegroup (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropgroup (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpgroup (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

變更的內容:
  • 在 ALL 選項的描述中加入資訊,說明此選項已被取代,只保留回溯相容性。