REVOKE (オブジェクトの権限の取り消し) (Transact-SQL)

テーブル、ビュー、テーブル値関数、ストアド プロシージャ、拡張ストアド プロシージャ、スカラー関数、集計関数、サービス キュー、またはシノニムに対する権限を取り消します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON 
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
        { FROM | TO } <database_principal> [ ,...n ] 
    [ CASCADE ]
    [ AS <database_principal> ]

<permission> ::=
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]

<database_principal> ::= 
        Database_user 
    | Database_role 
    | Application_role 
    | Database_user_mapped_to_Windows_User 
    | Database_user_mapped_to_Windows_Group 
    | Database_user_mapped_to_certificate 
    | Database_user_mapped_to_asymmetric_key 
    | Database_user_with_no_login    

引数

  • permission
    スキーマに含まれるオブジェクトで取り消すことができる権限を指定します。権限の一覧については、後の「解説」を参照してください。

  • ALL
    ALL を指定しても、可能な権限がすべて取り消されるわけではありません。ALL を指定すると、指定したオブジェクトに適用されるすべての ANSI-92 権限を取り消すことになります。ALL の意味は、状況に応じて次のようになります。

    スカラー関数の権限の場合は、EXECUTE、REFERENCES。

    テーブル値関数の権限の場合は、DELETE、INSERT、REFERENCES、SELECT、UPDATE。

    ストアド プロシージャの権限の場合は、EXECUTE。

    テーブルの権限の場合は、DELETE、INSERT、REFERENCES、SELECT、UPDATE。

    ビューの権限の場合は、DELETE、INSERT、REFERENCES、SELECT、UPDATE。

  • PRIVILEGES
    ANSI-92 準拠のために用意されています。ALL の動作は変更されません。

  • column
    権限を取り消すテーブル、ビュー、またはテーブル値関数内の列の名前を指定します。かっこ ( ) で囲む必要があります。列で拒否できるのは、SELECT、REFERENCES、UPDATE 権限だけです。column は permissions 句内、またはセキュリティ保護可能なリソースの名前の後に指定できます。

  • ON [ OBJECT :: ] [ schema_name ] .object_name
    権限を取り消すオブジェクトを指定します。OBJECT 句は、schema_name を指定する場合は省略可能です。OBJECT 句を使用する場合は、スコープ修飾子 (::) が必要です。schema_name を指定しない場合は、既定のスキーマが使用されます。schema_name を指定する場合は、スキーマのスコープ修飾子 (.) が必要です。

  • { FROM | TO } <database_principal>
    権限を取り消すプリンシパルを指定します。

  • GRANT OPTION
    指定した権限を他のプリンシパルに許可するための権利が、取り消されます。権限自体は取り消されません。

    重要な注意事項重要

    指定した権限が GRANT オプションなしでプリンシパルに許可されている場合は、その権限自体が取り消されます。

  • CASCADE
    このプリンシパルによって権限が許可または拒否されている他のプリンシパルからも、同じ権限が取り消されることを示します。

    注記注意

    WITH GRANT OPTION で許可されている権限を CASCADE で取り消すと、その権限の GRANT および DENY の両方が取り消されます。

  • AS <database_principal>
    このクエリを実行するプリンシパルが権限を取り消す権利を取得した、元のプリンシパルを指定します。

  • Database_user
    データベース ユーザーを指定します。

  • Database_role
    データベース ロールを指定します。

  • Application_role
    アプリケーション ロールを指定します。

  • Database_user_mapped_to_Windows_User
    Windows ユーザーにマップされているデータベース ユーザーを指定します。

  • Database_user_mapped_to_Windows_Group
    Windows グループにマップされているデータベース ユーザーを指定します。

  • Database_user_mapped_to_certificate
    証明書にマップされているデータベース ユーザーを指定します。

  • Database_user_mapped_to_asymmetric_key
    非対称キーにマップされているデータベース ユーザーを指定します。

  • Database_user_with_no_login
    対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。

説明

オブジェクトに関する情報は、各種カタログ ビューに表示されます。詳細については、「オブジェクト カタログ ビュー (Transact-SQL)」を参照してください。

オブジェクトは、スキーマ レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているスキーマに含まれています。次の表に、オブジェクトで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

オブジェクト権限

権限が含まれるオブジェクト権限

権限が含まれるスキーマ権限

ALTER

CONTROL

ALTER

CONTROL

CONTROL

CONTROL

DELETE

CONTROL

DELETE

EXECUTE

CONTROL

EXECUTE

INSERT

CONTROL

INSERT

RECEIVE

CONTROL

CONTROL

REFERENCES

CONTROL

REFERENCES

SELECT

RECEIVE

SELECT

TAKE OWNERSHIP

CONTROL

CONTROL

UPDATE

CONTROL

UPDATE

VIEW CHANGE TRACKING

CONTROL

VIEW CHANGE TRACKING

VIEW DEFINITION

CONTROL

VIEW DEFINITION

権限

オブジェクトに対する CONTROL 権限が必要です。

AS 句を使用する場合、指定されるプリンシパルは、権限が取り消されるオブジェクトを所有している必要があります。

A. テーブルの SELECT 権限を取り消す

次の例では、AdventureWorks2008R2 データベースのテーブル Person.Address に対する SELECT 権限を、ユーザー RosaQdM から取り消します。

USE AdventureWorks2008R2;
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;
GO

B. ストアド プロシージャの EXECUTE 権限を取り消す

次の例では、ストアド プロシージャ HumanResources.uspUpdateEmployeeHireInfo の EXECUTE 権限を、アプリケーション ロール Recruiting11 から取り消します。

USE AdventureWorks2008R2;
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
    FROM Recruiting11;
GO 

C. CASCADE を指定してビューの REFERENCES 権限を取り消す

次の例では、ビュー HumanResources.vEmployee 内の列 BusinessEntityID の REFERENCES 権限を、ユーザー Wanida から取り消します。ここでは CASCADE を使用します。

USE AdventureWorks2008R2;
REVOKE REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee 
    FROM Wanida CASCADE;
GO