適用対象:SQL Server
指定したリンク サーバーから、指定したテーブルの特権情報を返します。
構文
sp_table_privileges_ex
[ @table_server = ] N'table_server'
[ , [ @table_name = ] N'table_name' ]
[ , [ @table_schema = ] N'table_schema' ]
[ , [ @table_catalog = ] N'table_catalog' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
引数
[ @table_server = ] N'table_server'
情報を返すリンク サーバーの名前。 @table_server は sysname で、既定値はありません。
[ @table_name = ] N'table_name'
テーブル権限情報を提供するテーブルの名前。
@table_name は sysname で、既定値は NULL です。
[ @table_schema = ] N'table_schema
テーブル スキーマ。 これは、一部の DBMS 環境ではテーブル所有者です。
@table_schema は sysname で、既定値は NULL です。
[ @table_catalog = ] N'table_catalog
指定した @table_name が存在するデータベースの名前。
@table_catalog は sysname で、既定値は NULL です。
[ @fUsePattern = ] fUsePattern
文字 _、 %、 [、および ] がワイルドカード文字として解釈されるかどうかを判断します。 有効な値は 0 (パターン マッチングがオフ) と 1 (パターン マッチングがオン) です。
@fUsePattern は bit で、既定値は 1 です。
リターン コードの値
なし。
結果セット
| 列名 | データ型 | 説明 |
|---|---|---|
TABLE_CAT |
sysname | テーブルの修飾子名です。 さまざまな DBMS 製品では、テーブルの 3 部構成の名前付け (<qualifier>.<owner>.<name>) がサポートされています。 SQL Server では、この列はデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。 このフィールドは NULLできます。 |
TABLE_SCHEM |
sysname | テーブル所有者の名前。 SQL Server では、この列は、テーブルを作成したデータベース ユーザーの名前を表します。 このフィールドには常に値が返されます。 |
TABLE_NAME |
sysname | テーブル名。 このフィールドには常に値が返されます。 |
GRANTOR |
sysname | 一覧に示されているTABLE_NAMEに対するこのGRANTEEに対するアクセス許可が付与されているデータベース ユーザー名。 SQL Server では、この列は常に TABLE_OWNERと同じです。 このフィールドには常に値が返されます。 また、GRANTOR列には、データベース所有者 (TABLE_OWNER) またはデータベース所有者が、WITH GRANT OPTION ステートメントの GRANT 句を使用してアクセス許可を付与したユーザーが含まれます。 |
GRANTEE |
sysname | 一覧に示されているTABLE_NAMEによって、このGRANTORに対するアクセス許可が付与されているデータベース ユーザー名。 このフィールドには常に値が返されます。 |
PRIVILEGE |
varchar(32) | 使用可能なテーブル権限の 1 つ。 テーブルのアクセス許可には、次の値のいずれか、または実装が定義されている場合にデータ ソースでサポートされるその他の値を指定できます。SELECT
=
GRANTEE では、1 つ以上の列のデータを取得できます。INSERT
=
GRANTEE では、1 つ以上の列の新しい行のデータを提供できます。UPDATE
=
GRANTEE では、1 つ以上の列の既存のデータを変更できます。DELETE
=
GRANTEE では、テーブルから行を削除できます。REFERENCES
=
GRANTEE では、主キー/外部キーリレーションシップの外部テーブル内の列を参照できます。 SQL Server では、主キーと外部キーのリレーションシップはテーブル制約を使用して定義されます。特定のテーブル権限によって GRANTEE に与えられるアクションのスコープは、データ ソースに依存します。 たとえば、 UPDATE アクセス許可を使用すると、 GRANTEE は 1 つのデータ ソース上のテーブル内のすべての列を更新でき、 GRANTOR が別のデータ ソースに対する UPDATE 権限を持つ列のみを更新できます。 |
IS_GRANTABLE |
varchar(3) |
GRANTEEが他のユーザーにアクセス許可を付与できるかどうかを示します。 これは、"許可の許可" 権限と呼ばれることがあります。
YES、NO、または NULL を指定できます。 不明な値 ( NULL) は、"grant with grant" が適用されないデータ ソースを指します。 |
解説
返される結果は、 TABLE_QUALIFIER、 TABLE_OWNER、 TABLE_NAME、および PRIVILEGE順に並べられます。
アクセス許可
スキーマに対する SELECT アクセス許可が必要です。
例
次の例では、指定したリンク サーバー Productから、AdventureWorks2025 データベースのSeattle1で始まる名前を持つテーブルに関する特権情報を返します。 SQL Server はリンク サーバーと見なされます。
EXECUTE sp_table_privileges_ex
@table_server = 'Seattle1',
@table_name = 'Product%',
@table_schema = 'Production',
@table_catalog = 'AdventureWorks2022';