GRANT (サーバーの権限の許可) (Transact-SQL)

サーバーに対する権限を許可します。

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

構文

GRANT permission [ ,...n ] 
    TO <grantee_principal> [ ,...n ] [ WITH GRANT OPTION ]
    [ AS <grantor_principal> ]

<grantee_principal> ::= SQL_Server_login 
    | SQL_Server_login_mapped_to_Windows_login
    | SQL_Server_login_mapped_to_Windows_group
    | SQL_Server_login_mapped_to_certificate
    | SQL_Server_login_mapped_to_asymmetric_key
    | server_role 

<grantor_principal> ::= SQL_Server_login 
    | SQL_Server_login_mapped_to_Windows_login
    | SQL_Server_login_mapped_to_Windows_group
    | SQL_Server_login_mapped_to_certificate
    | SQL_Server_login_mapped_to_asymmetric_key
    | server_role

引数

  • permission
    サーバーで許可できる権限を指定します。 権限の一覧については、後の「解説」を参照してください。

  • TO <grantee_principal>
    権限を許可するプリンシパルを指定します。

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

  • WITH GRANT OPTION
    権限が許可されたプリンシパルが、この権限を他のプリンシパルにも許可できることを示します。

  • SQL_Server_login
    SQL Server ログインを指定します。

  • SQL_Server_login_mapped_to_Windows_login
    Windows ログインにマップされている SQL Server ログインを指定します。

  • SQL_Server_login_mapped_to_Windows_group
    Windows グループにマップされている SQL Server ログインを指定します。

  • SQL_Server_login_mapped_to_certificate
    証明書にマップされている SQL Server ログインを指定します。

  • SQL_Server_login_mapped_to_asymmetric_key
    非対称キーにマップされている SQL Server ログインを指定します。

  • server_role
    ユーザー定義サーバー ロールを指定します。

説明

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

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

サーバーは権限の階層の最上位となります。 次の表に、サーバーで許可できる最も限定的な権限を示します。

サーバー権限

権限が含まれるサーバー権限

ADMINISTER BULK OPERATIONS

CONTROL SERVER

ALTER ANY AVAILABILITY GROUP

CONTROL SERVER

ALTER ANY CONNECTION

CONTROL SERVER

ALTER ANY CREDENTIAL

CONTROL SERVER

ALTER ANY DATABASE

CONTROL SERVER

ALTER ANY ENDPOINT

CONTROL SERVER

ALTER ANY EVENT NOTIFICATION

CONTROL SERVER

ALTER ANY EVENT SESSION

CONTROL SERVER

ALTER ANY LINKED SERVER

CONTROL SERVER

ALTER ANY LOGIN

CONTROL SERVER

ALTER ANY SERVER AUDIT

CONTROL SERVER

ALTER ANY SERVER ROLE

CONTROL SERVER

ALTER RESOURCES

CONTROL SERVER

ALTER SERVER STATE

CONTROL SERVER

ALTER SETTINGS

CONTROL SERVER

ALTER TRACE

CONTROL SERVER

AUTHENTICATE SERVER

CONTROL SERVER

CONNECT SQL

CONTROL SERVER

CONTROL SERVER

CONTROL SERVER

CREATE ANY DATABASE

ALTER ANY DATABASE

CREATE AVAILABILITY GROUP

ALTER ANY AVAILABILITY GROUP

CREATE DDL EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

CREATE ENDPOINT

ALTER ANY ENDPOINT

CREATE SERVER ROLE

ALTER ANY SERVER ROLE

CREATE TRACE EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

EXTERNAL ACCESS ASSEMBLY

CONTROL SERVER

SHUTDOWN

CONTROL SERVER

UNSAFE ASSEMBLY

CONTROL SERVER

VIEW ANY DATABASE

VIEW ANY DEFINITION

VIEW ANY DEFINITION

CONTROL SERVER

VIEW SERVER STATE

ALTER SERVER STATE

権限

権限の許可者 (または AS オプションで指定されたプリンシパル) は、GRANT OPTION によって与えられた権限を保持しているか、権限が暗黙的に与えられる上位の権限を保持している必要があります。 sysadmin 固定サーバー ロールのメンバーは、すべての権限を許可できます。

使用例

A. ログインに権限を許可する

次の例では、SQL Server ログイン TerryEminhizer に CONTROL SERVER 権限を許可します。

USE master;
GRANT CONTROL SERVER TO TerryEminhizer;
GO

B. GRANT 権限に関する権限を許可する

次の例では、SQL Server ログイン JanethEsteves に、ALTER ANY EVENT NOTIFICATION 権限を許可し、この権限を他のログインに許可する権利を与えます。

USE master;
GRANT ALTER ANY EVENT NOTIFICATION TO JanethEsteves WITH GRANT OPTION;
GO

C. サーバー ロールに権限を許可する

次の例では、ITDevAdmin および ITDevelopers という名前の 2 つのサーバー ロールを作成します。 ここでは、WITH GRANT オプションを含めて、ALTER ANY DATABASE 権限を ITDevAdmin ユーザー定義サーバー ロールに許可します。これにより、ITDevAdmin サーバー ロールは、ALTER ANY DATABASE 権限を再割り当てすることができます。 次に、ITDevAdmin サーバー ロールの ALTER ANY DATABASE 権限を使用する権限を ITDevelopers に許可します。

USE master;
CREATE SERVER ROLE ITDevAdmin ;
CREATE SERVER ROLE ITDevelopers ;
GRANT ALTER ANY DATABASE TO ITDevAdmin WITH GRANT OPTION ;
GRANT ALTER ANY DATABASE TO ITDevelopers AS ITDevAdmin ;
GO

関連項目

参照

GRANT (Transact-SQL)

DENY (Transact-SQL)

DENY (サーバーの権限の拒否) (Transact-SQL)

REVOKE (サーバーの権限の取り消し) (Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL)

sys.fn_my_permissions (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL)

概念

権限の階層 (データベース エンジン)

プリンシパル (データベース エンジン)

権限 (データベース エンジン)