次の方法で共有


sp_table_privileges_ex (Transact-SQL)

適用対象: SQL Server

指定したリンク サーバーから、指定したテーブルの特権情報を返します。

Transact-SQL 構文表記規則

構文

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_serversysname で、既定値はありません。

[ @table_name = ] N'table_name'

テーブル権限情報を提供するテーブルの名前。 @table_namesysname で、既定値は NULL です。

[ @table_schema = ] N'table_schema'

テーブル スキーマ。 これは、一部の DBMS 環境ではテーブル所有者です。 @table_schemasysname で、既定値は NULL です。

[ @table_catalog = ] N'table_catalog'

指定した @table_name が存在するデータベースの名前。 @table_catalogsysname で、既定値は NULL です。

[ @fUsePattern = ] fUsePattern

文字 _%[、および ] がワイルドカード文字として解釈されるかどうかを判断します。 有効な値は 0 (パターン マッチングがオフ) と 1 (パターン マッチングがオン) です。 @fUsePatternbit で、既定値は 1 です。

リターン コードの値

なし。

結果セット

列名 データ型 説明
TABLE_CAT sysname テーブルの修飾子名です。 さまざまな DBMS 製品では、テーブルの 3 部構成の名前付け (<qualifier>.<owner>.<name>) がサポートされています。 SQL Server では、この列はデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。 このフィールドは NULLできます。
TABLE_SCHEM sysname テーブル所有者の名前。 SQL Server では、この列は、テーブルを作成したデータベース ユーザーの名前を表します。 このフィールドには常に値が返されます。
TABLE_NAME sysname テーブル名。 このフィールドには常に値が返されます。
GRANTOR sysname 一覧に示されているGRANTEEに対するこのTABLE_NAMEに対するアクセス許可が付与されているデータベース ユーザー名。 SQL Server では、この列は常に TABLE_OWNERと同じです。 このフィールドには常に値が返されます。 また、GRANTOR列には、データベース所有者 (TABLE_OWNER) またはデータベース所有者が、GRANT ステートメントの WITH GRANT OPTION 句を使用してアクセス許可を付与したユーザーが含まれます。
GRANTEE sysname 一覧に示されているGRANTORによって、このTABLE_NAMEに対するアクセス許可が付与されているデータベース ユーザー名。 このフィールドには常に値が返されます。
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が他のユーザーにアクセス許可を付与できるかどうかを示します。 これは、"許可の許可" 権限と呼ばれることがあります。 YESNO、または NULL を指定できます。 不明な値 ( NULL) は、"grant with grant" が適用されないデータ ソースを指します。

解説

返される結果は、 TABLE_QUALIFIERTABLE_OWNERTABLE_NAME、および PRIVILEGE順に並べられます。

アクセス許可

スキーマに対する SELECT アクセス許可が必要です。

次の例では、指定したリンク サーバー Seattle1から、AdventureWorks2022 データベースのProductで始まる名前を持つテーブルに関する特権情報を返します。 SQL Server はリンク サーバーと見なされます。

EXEC sp_table_privileges_ex @table_server = 'Seattle1',
    @table_name = 'Product%',
    @table_schema = 'Production',
    @table_catalog ='AdventureWorks2022';