GRANT (XML スキーマ コレクションの権限の許可) (Transact-SQL)

適用対象:SQL Server

XML スキーマ コレクションに対する権限を許可します。

Transact-SQL 構文表記規則

構文

  
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  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

permission
XML スキーマ コレクションで許可できる権限を指定します。 権限の一覧については、後の「解説」を参照してください。

ON XML SCHEMA COLLECTION :: [ schema_name. ] XML_schema_collection_name
権限を許可する XML スキーマ コレクションを指定します。 スコープ修飾子 (::) が必要です。 schema_name が指定されていない場合、既定のスキーマが使用されます。 schema_name が指定されている場合、スキーマのスコープ修飾子 (.) が必要です。

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

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

AS このクエリを実行するプリンシパルが権限を許可する権利の派生元のプリンシパルを指定します。

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 スキーマ コレクション EXECUTEInvoices4 権限をユーザー Wanida に許可します。 XML スキーマ コレクション Invoices4 は、AdventureWorks2022 データベースの Sales スキーマ内にあります。

USE AdventureWorks2022;  
GRANT EXECUTE ON XML SCHEMA COLLECTION::Sales.Invoices4 TO Wanida;  
GO

参照

DENY (XML スキーマ コレクションの権限の拒否) (Transact-SQL)
REVOKE (XML スキーマ コレクションの権限の取り消し) (Transact-SQL)
sys.xml_schema_collections (Transact-SQL)
CREATE XML SCHEMA COLLECTION (Transact-SQL)
権限 (データベース エンジン)
プリンシパル (データベース エンジン)