32.10. column_privileges

column_privilegesビューは、現在有効なロールに対し、または現在有効なロールによって、列に与えられた権限を全て識別します。 列と許可を与えた者、許可を受けた者の組み合わせごとに1行があります。

PostgreSQLでは、個々の列ではなくテーブル全体にのみ権限を与えることができます。 したがって、このビューには、table_privilegesと同じ情報が含まれ、単に、各適切なテーブル内の全ての列を1行で表現します。 しかし、SELECTINSERTUPDATEREFERENCESといった列単位で設定可能な種類の権限のみを対象範囲とします。 将来起き得る開発に合うようにアプリケーションを作成したいのであれば、これらの権限の種類のいずれかを対象とする場合に、table_privilegesではなくこのビューを使用することが一般的に正しい方法です。

表 32-8. column_privileges の列

名前データ型説明
grantorsql_identifier権限を与えたユーザの名前です。
granteesql_identifier権限を与えられたロールの名前です。
table_catalogsql_identifierその列を含むテーブルを持つデータベースの名前です(常に現在のデータベースです)。
table_schemasql_identifierその列を含むテーブルを持つスキーマの名前です。
table_namesql_identifierその列を含むテーブルの名前です。
column_namesql_identifier列の名前です。
privilege_typecharacter_data権限の種類です。 SELECTINSERTUPDATE、もしくはREFERENCESです。
is_grantablecharacter_dataこの権限を付与可能な場合はYES、さもなくばNOです。