GRANT (型の権限の許可) (Transact-SQL)

型に対する権限を許可します。

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

構文

GRANT permission  [ ,...n ] ON TYPE :: [ schema_name . ] type_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 TYPE :: [ schema_name**.] type_name
    権限を許可する型を指定します。スコープ修飾子 (
    ::) が必要です。schema_name を指定しない場合は、既定のスキーマが使用されます。schema_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
    対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。

説明

型は、スキーマ レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているスキーマに含まれています。

重要な注意事項重要

GRANT、DENY、REVOKE の各権限は、システム型には適用されません。ユーザー定義型には権限を許可できます。ユーザー定義型の詳細については、「SQL Server でのユーザー定義型の使用」を参照してください。

次の表に、型で許可できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。

型権限

権限が含まれる型権限

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

CONTROL

CONTROL

CONTROL

EXECUTE

CONTROL

EXECUTE

REFERENCES

CONTROL

REFERENCES

TAKE OWNERSHIP

CONTROL

CONTROL

VIEW DEFINITION

CONTROL

VIEW DEFINITION

権限

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

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

AS

必要な追加権限

データベース ユーザー

ユーザーに対する 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 固定サーバー ロールのメンバシップ。

次の例では、ユーザー KhalidR に対し、ユーザー定義型 PhoneNumber の VIEW DEFINITION 権限を、GRANT OPTION オプションを指定して許可します。PhoneNumber のスキーマは Telemarketing です。

GRANT VIEW DEFINITION ON TYPE::Telemarketing.PhoneNumber 
    TO KhalidR WITH GRANT OPTION;
GO