sp_column_privileges_ex (Transact-SQL)

適用対象: SQL Server

指定されたリンク サーバー上の指定されたテーブルの列の特権を返します。

Transact-SQL 構文表記規則

構文

sp_column_privileges_ex
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

引数

[ @table_server = ] N'table_server'

情報を返すリンク サーバーの名前。 @table_serversysname で、既定値はありません。

[ @table_name = ] N'table_name'

指定した列を含むテーブルの名前。 @table_namesysname で、既定値は NULL です。

[ @table_schema = ] N'table_schema'

テーブル スキーマ。 @table_schemasysname で、既定値は NULL です。

[ @table_catalog = ] N'table_catalog'

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

[ @column_name = ] N'column_name'

特権情報を提供する列の名前。 @column_namesysname で、既定値は NULL (すべて共通) です。

結果セット

次の表は結果セットの列を示しています。 返される結果は、 TABLE_QUALIFIERTABLE_OWNERTABLE_NAMECOLUMN_NAME、および PRIVILEGE順に並べ替えます。

列名 データ型 説明
TABLE_CAT sysname テーブルの修飾子名です。 さまざまな DBMS 製品では、テーブルの 3 部構成の名前付け (<qualifier>.<owner>.<name>) がサポートされています。 SQL Server では、この列はデータベース名を表します。 一部の製品では、テーブルのデータベース環境のサーバー名を表します。 このフィールドは NULLできます。
TABLE_SCHEM sysname テーブル所有者の名前。 SQL Server では、この列は、テーブルを作成したデータベース ユーザーの名前を表します。 このフィールドには常に値が返されます。
TABLE_NAME sysname テーブル名。 このフィールドには常に値が返されます。
COLUMN_NAME sysname 返される TABLE_NAME の各列の列名。 このフィールドには常に値が返されます。
GRANTOR sysname リストされているGRANTEEに対するこのCOLUMN_NAMEに対するアクセス許可が付与されたデータベース ユーザー名。 SQL Server では、この列は常に TABLE_OWNERと同じです。 このフィールドには常に値が返されます。

GRANTOR列には、GRANT ステートメントの WITH GRANT OPTION 句を使用して、データベース所有者 (TABLE_OWNER) またはデータベース所有者が権限を付与したユーザーを指定できます。
GRANTEE sysname 一覧に示されているGRANTORによって、このCOLUMN_NAMEに対するアクセス許可が付与されたデータベース ユーザー名。 このフィールドには常に値が返されます。
PRIVILEGE varchar(32) 使用可能な列のアクセス許可の 1 つ。 列のアクセス許可には、次のいずれかの値を指定できます (または、実装が定義されている場合、データ ソースでサポートされるその他の値)。

SELECT = GRANTEE では、列のデータを取得できます。
INSERT = GRANTEE では、( GRANTEEによって) 新しい行がテーブルに挿入されるときに、この列のデータを提供できます。
UPDATE = GRANTEE では、列内の既存のデータを変更できます。
REFERENCES = GRANTEE では、主キー/外部キーリレーションシップの外部テーブル内の列を参照できます。 主キーと外部キーのリレーションシップは、テーブル制約を使用して定義されます。
IS_GRANTABLE varchar(3) GRANTEEが他のユーザーにアクセス許可を付与できるかどうかを示します (多くの場合、"grant with grant" アクセス許可と呼ばれます)。 YES、NO、または NULLを指定できます。 不明な値 ( NULL) は、"grant with grant" が適用されないデータ ソースを参照します。

アクセス許可

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

次の例では、HumanResources.Department リンク サーバーにある AdventureWorks2022 データベースの Seattle1 テーブルの列特権情報を返します。

EXEC sp_column_privileges_ex
    @table_server = 'Seattle1',
    @table_name = 'Department',
    @table_schema = 'HumanResources',
    @table_catalog = 'AdventureWorks2022';