GRANT (XML スキーマ コレクションの権限の許可) (Transact-SQL)
XML スキーマ コレクションに対する権限を許可します。
構文
GRANT permission [ ,...n ] ON
XML SCHEMA COLLECTION :: [ schema_name . ]
XML_schema_collection_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
XML スキーマ コレクションで許可できる権限を指定します。権限の一覧については、後の「解説」を参照してください。ON XML SCHEMA COLLECTION :: [ schema_name**.] XML_schema_collection_name
権限を許可する XML スキーマ コレクションを指定します。スコープ修飾子 (::) が必要です。schema_name を指定しない場合は、既定のスキーマが使用されます。schema_name を指定する場合は、スキーマのスコープ修飾子 (.**) が必要です。<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
対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。
説明
XML スキーマ コレクションに関する情報は、sys.xml_schema_collections カタログ ビューで確認できます。
XML スキーマ コレクションは、スキーマ レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているスキーマに含まれています。次の表に、XML スキーマ コレクションで許可できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
XML スキーマ コレクション権限 |
権限が含まれる XML スキーマ コレクション権限 |
権限が含まれるスキーマ権限 |
---|---|---|
ALTER |
CONTROL |
ALTER |
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 固定サーバー ロールのメンバシップ。 |
例
次の例では、XML スキーマ コレクション Invoices4 の EXECUTE 権限をユーザー Wanida に許可します。XML スキーマ コレクション Invoices4 は、AdventureWorks データベースの Sales スキーマ内にあります。
USE AdventureWorks;
GRANT EXECUTE ON XML SCHEMA COLLECTION::Sales.Invoices4 TO Wanida;
GO