DENY (サーバー プリンシパルの権限の拒否) (Transact-SQL)

SQL Server ログインに対して許可された権限を拒否します。

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

構文

DENY permission [ ,...n ] } 
    ON LOGIN :: SQL_Server_login
    TO <server_principal> [ ,...n ]
    [ CASCADE ]
    [ AS SQL_Server_login ] 

<server_principal> ::= 
        SQL_Server_login
    | SQL_Server_login_from_Windows_login 
    | SQL_Server_login_from_certificate 
    | SQL_Server_login_from_AsymKey   

引数

  • permission
    SQL Server ログインで拒否できる権限を指定します。権限の一覧については、後の「解説」を参照してください。
  • LOGIN :: SQL_Server_login
    拒否される権限の対象となる SQL Server ログインを指定します。スコープ修飾子 (::) が必要です。
  • TO SQL_Server_login
    権限を拒否する SQL Server ログインを指定します。
  • SQL_Server_login
    SQL Server ログインの名前を指定します。
  • SQL_Server_login_from_Windows_login
    Windows ログインから作成された SQL Server ログインの名前を指定します。
  • SQL_Server_login_from_certificate
    証明書にマップされている SQL Server ログインの名前を指定します。
  • SQL_Server_login_from_AsymKey
    非対称キーにマップされている SQL Server ログインの名前を指定します。
  • CASCADE
    このプリンシパルによって権限が許可されている他のプリンシパルに対しても、同じ権限を拒否することを示します。
  • AS SQL_Server_login
    このクエリを実行するプリンシパルが権限を拒否する権利を取得した、元の SQL Server ログインを指定します。

解説

サーバー スコープの権限を拒否できるのは、現在のデータベースが master のときだけです。

サーバー権限に関する情報は、sys.server_permissions カタログ ビューで確認できます。サーバー プリンシパルに関する情報は、sys.server_principals カタログ ビューで確認できます。

GRANT OPTION で権限が許可されたプリンシパルに対して権限を拒否するときに CASCADE を指定した場合、DENY ステートメントは失敗します。

SQL Server ログインは、サーバー レベルのセキュリティ保護可能なリソースです。次の表に、SQL Server ログインで拒否できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

SQL Server ログイン権限 権限が含まれる SQL Server ログイン権限 権限が含まれるサーバー権限

CONTROL

CONTROL

CONTROL SERVER

IMPERSONATE

CONTROL

CONTROL SERVER

VIEW DEFINITION

CONTROL

VIEW ANY DEFINITION

ALTER

CONTROL

ALTER ANY LOGIN

権限

ログインに対する CONTROL 権限、またはサーバーに対する ALTER ANY LOGIN 権限が必要です。

A. ログインの IMPERSONATE 権限を拒否する

次の例では、SQL Server ログイン WanidaBenshoofIMPERSONATE 権限を、Windows ユーザー AdvWorks\YoonM から作成された SQL Server ログインに対して拒否します。

USE master;
DENY IMPERSONATE ON LOGIN::WanidaBenshoof TO [AdvWorks\YoonM];
GO

B. CASCADE を指定して VIEW DEFINITION 権限を拒否する

次の例では、SQL Server ログイン EricKurjanVIEW DEFINITION 権限を、SQL Server ログイン RMeyyappan に対して拒否します。ここでは CASCADE オプションを使用して、RMeyyappan がこの権限を許可したプリンシパルに対しても、EricKurjanVIEW DEFINITION 権限を拒否することを指定します。

USE master;
DENY VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan 
    CASCADE;
GO 

参照

関連項目

sys.server_principals (Transact-SQL)
sys.server_permissions (Transact-SQL)
GRANT (サーバー プリンシパルの権限の許可) (Transact-SQL)
REVOKE (サーバー プリンシパルの権限の取り消し) (Transact-SQL)
CREATE LOGIN (Transact-SQL)

その他の技術情報

プリンシパル
権限

ヘルプおよび情報

SQL Server 2005 の参考資料の入手