REVOKE (データベース プリンシパルの権限の取り消し) (Transact-SQL)

データベース ユーザー、データベース ロール、アプリケーション ロールに対して許可または拒否された権限を取り消します。

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

構文

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]  
    ON 
    {  [ USER :: database_user ]
       | [ ROLE :: database_role ]
       | [ APPLICATION ROLE :: application_role ]
    }
    { FROM | TO } <database_principal> [ ,...n ]
        [ CASCADE ]
    [ AS <database_principal> ]

<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
    データベース プリンシパルで取り消すことのできる権限を指定します。権限の一覧については、後の「解説」を参照してください。

  • USER :: database_user
    権限を取り消すユーザーのクラスと名前を指定します。スコープ修飾子 (::) が必要です。

  • ROLE :: database_role
    権限を取り消すロールのクラスと名前を指定します。スコープ修飾子 (::) が必要です。

  • APPLICATION ROLE :: application_role
    権限を取り消すアプリケーション ロールのクラスと名前を指定します。スコープ修飾子 (::) が必要です。

  • 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
    対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。

説明

データベース ユーザー権限

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

データベース ユーザー権限

権限が含まれるデータベース ユーザー権限

権限が含まれるデータベース権限

CONTROL

CONTROL

CONTROL

IMPERSONATE

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY USER

VIEW DEFINITION

CONTROL

VIEW DEFINITION

データベース ロール権限

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

データベース ロール権限

権限が含まれるデータベース ロール権限

権限が含まれるデータベース権限

CONTROL

CONTROL

CONTROL

TAKE OWNERSHIP

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

アプリケーション ロール権限

アプリケーション ロールは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。次の表に、アプリケーション ロールで取り消すことのできる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

アプリケーション ロール権限

権限が含まれるアプリケーション ロール権限

権限が含まれるデータベース権限

CONTROL

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY APPLICATION ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

権限

指定したプリンシパルに対する CONTROL 権限、または CONTROL 権限を暗黙的に含む上位の権限が必要です。

db_owner 固定データベース ロールのメンバーなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を許可できます。

A. ユーザーに対する CONTROL 権限を別のユーザーから取り消す

次の例では、AdventureWorks2008R2 ユーザー Wanida に対する CONTROL 権限を、ユーザー RolandX から取り消します。

USE AdventureWorks2008R2;
REVOKE CONTROL ON USER::Wanida FROM RolandX;
GO

B. ロールに対する VIEW DEFINITION 権限を、WITH GRANT OPTION で権限が許可されたユーザーから取り消す

次の例では、AdventureWorks2008R2 ロール SammamishParking に対する VIEW DEFINITION 権限を、データベース ユーザー JinghaoLiu から取り消します。JinghaoLiu には、WITH GRANT OPTION を指定して VIEW DEFINITION 権限が許可されているため、CASCADE オプションを指定します。

USE AdventureWorks2008R2;
REVOKE VIEW DEFINITION ON ROLE::SammamishParking 
    FROM JinghaoLiu CASCADE;
GO

C. ユーザーに対する IMPERSONATE 権限をアプリケーション ロールから取り消す

次の例では、ユーザー HamithaL に対する IMPERSONATE 権限を、AdventureWorks2008R2 アプリケーション ロール AccountsPayable17 から取り消します。

USE AdventureWorks2008R2;
REVOKE IMPERSONATE ON USER::HamithaL FROM AccountsPayable17;
GO