REVOKE (Transact-SQL)

移除先前授與或拒絕的權限。

主題連結圖示Transact-SQL 語法慣例

語法

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

引數

  • GRANT OPTION FOR
    表示將撤銷授與指定權限的能力。這在您使用 CASCADE 引數時是必須的。

    重要事項重要事項

    如果主體有不含 GRANT 選項的指定權限,則會撤銷權限本身。

  • 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。

    [!附註]

    REVOKE ALL 語法已被取代。未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 改為撤銷特定的權限。

  • PRIVILEGES
    為符合 ISO 而包含這個項目。不會變更 ALL 的行為。

  • permission
    這是權限的名稱。權限對安全性實體的有效對應描述於本主題稍後<安全性實體特定語法>所列的幾個主題中。

  • column
    指定正在撤銷權限的資料表中資料行的名稱。它必須用括號括住。

  • class
    指定正在撤銷權限之安全性實體的類別。必須具備範圍識別碼 ::

  • securable
    指定正在撤銷權限的安全性實體。

  • TO | FROM principal
    這是主體的名稱。可以撤銷安全性實體權限的主體,隨著安全性實體而不同。如需有關有效組合的詳細資訊,請參閱本主題稍後<安全性實體特定語法>中所列的主題。

  • CASCADE
    指出目前正在撤銷的權限,也會從它被這個主體所授與的其他主體一起撤銷。當您使用 CASCADE 引數時,必須也包括 GRANT OPTION FOR 引數。

    警告注意事項注意

    獲得授與 WITH GRANT OPTION 之權限的串聯撤銷,會同時撤銷該權限的 GRANT 和 DENY。

  • AS principal
    指定主體,執行這項查詢的主體會從這個主體衍生其權限來撤銷權限。

備註

REVOKE 陳述式的完整語法相當複雜。前一個語法圖已簡化,以強調其結構。撤銷特定安全性實體權限的完整語法描述於本主題稍後<安全性實體特定語法>所列的幾個主題中。

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

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

警告注意事項注意

資料表層級的 DENY 不會優先於資料行層級的 GRANT。保留權限階層中這項不一致的目的,是為了與舊版相容。未來的版本將予以移除。

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

從被授與指定了 GRANT OPTION 之權限的主體撤銷權限時,如果未指定 CASCADE,REVOKE 陳述式便會失敗。

權限

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

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

安全性實體特定語法

下表列出安全性實體和描述安全性實體特定語法的主題。

安全性實體

主題

應用程式角色

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

組件

REVOKE 組件權限 (Transact-SQL)

非對稱金鑰

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

憑證

REVOKE 憑證權限 (Transact-SQL)

合約

REVOKE Service Broker 權限 (Transact-SQL)

資料庫

REVOKE 資料庫權限 (Transact-SQL)

端點

REVOKE 端點權限 (Transact-SQL)

全文檢索目錄

REVOKE 全文檢索權限 (Transact-SQL)

全文檢索停用字詞表

REVOKE 全文檢索權限 (Transact-SQL)

函數

REVOKE 物件權限 (Transact-SQL)

登入

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

訊息類型

REVOKE Service Broker 權限 (Transact-SQL)

物件

REVOKE 物件權限 (Transact-SQL)

佇列

REVOKE 物件權限 (Transact-SQL)

遠端服務繫結

REVOKE Service Broker 權限 (Transact-SQL)

角色

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

路由

REVOKE Service Broker 權限 (Transact-SQL)

結構描述

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

伺服器

REVOKE 伺服器權限 (Transact-SQL)

服務

REVOKE Service Broker 權限 (Transact-SQL)

預存程序

REVOKE 物件權限 (Transact-SQL)

對稱金鑰

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

同義字

REVOKE 物件權限 (Transact-SQL)

系統物件

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

資料表

REVOKE 物件權限 (Transact-SQL)

類型

REVOKE 類型權限 (Transact-SQL)

使用者

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

檢視

REVOKE 物件權限 (Transact-SQL)

XML 結構描述集合

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