sp_table_privileges_ex (Transact-SQL)
適用対象: 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 | 一覧に示されている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 が他のユーザーにアクセス許可を付与できるかどうかを示します。 これは、"許可の許可" 権限と呼ばれることがあります。 YES 、NO 、または NULL を指定できます。 不明な値 ( NULL ) は、"grant with grant" が適用されないデータ ソースを指します。 |
解説
返される結果は、 TABLE_QUALIFIER
、 TABLE_OWNER
、 TABLE_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';