GRANT (対称キーの権限の許可) (Transact-SQL)

対称キーの権限を許可します。

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

構文

GRANT permission [ ,...n ]  
    ON SYMMETRIC KEY :: symmetric_key_name 
    TO <database_principal> [ ,...n ] [ WITH GRANT OPTION ]
        [ 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
    対称キーで許可できる権限を指定します。権限の一覧については、後の「解説」を参照してください。

  • ON SYMMETRIC KEY ::asymmetric_key_name
    権限を許可する対称キーを指定します。スコープ修飾子 (
    ::
    ) が必要です。

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

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

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

説明

対称キーに関する情報は、sys.symmetric_keys カタログ ビューで確認できます。

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

対称キー権限

権限が含まれる対称キー権限

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

ALTER

CONTROL

ALTER ANY SYMMETRIC KEY

CONTROL

CONTROL

CONTROL

REFERENCES

CONTROL

REFERENCES

TAKE OWNERSHIP

CONTROL

CONTROL

VIEW DEFINITION

CONTROL

VIEW DEFINITION

権限

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

AS オプションを使用する場合は、次の追加要件があります。

AS granting_principal

必要な追加権限

データベース ユーザー

ユーザーに対する IMPERSONATE 権限、db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

Windows ログインにマップされているデータベース ユーザー

ユーザーに対する IMPERSONATE 権限、db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

Windows グループにマップされているデータベース ユーザー

Windows グループのメンバシップ、db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

証明書にマップされているデータベース ユーザー

db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

非対称キーにマップされているデータベース ユーザー

db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

サーバー プリンシパルにマップされていないデータベース ユーザー

ユーザーに対する IMPERSONATE 権限、db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

データベース ロール

ロールに対する ALTER 権限、db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

アプリケーション ロール

ロールに対する ALTER 権限、db_securityadmin 固定データベース ロールのメンバシップ、db_owner 固定データベース ロールのメンバシップ、または sysadmin 固定サーバー ロールのメンバシップ。

セキュリティ保護可能なリソースに対して CONTROL 権限があるプリンシパルは、そのリソースの権限を許可できます。

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

次の例では、対称キー SamInventory42 の ALTER 権限を、データベース ユーザー HamidS に対して許可します。

USE AdventureWorks;
GRANT ALTER ON SYMMETRIC KEY::SamInventory42 TO HamidS;
GO