column_privilegesビューは、現在有効なロールに対し、または現在有効なロールによって、列に与えられた権限を全て識別します。 列と許可を与えた者、許可を受けた者の組み合わせごとに1行があります。
PostgreSQLでは、個々の列ではなくテーブル全体にのみ権限を与えることができます。 したがって、このビューには、table_privilegesと同じ情報が含まれ、単に、各適切なテーブル内の全ての列を1行で表現します。 しかし、SELECT、INSERT、UPDATE、REFERENCESといった列単位で設定可能な種類の権限のみを対象範囲とします。 将来起き得る開発に合うようにアプリケーションを作成したいのであれば、これらの権限の種類のいずれかを対象とする場合に、table_privilegesではなくこのビューを使用することが一般的に正しい方法です。
表 33-8. column_privileges の列
名前 | データ型 | 説明 |
---|---|---|
grantor | sql_identifier | 権限を与えたユーザの名前です。 |
grantee | sql_identifier | 権限を与えられたロールの名前です。 |
table_catalog | sql_identifier | その列を含むテーブルを持つデータベースの名前です(常に現在のデータベースです)。 |
table_schema | sql_identifier | その列を含むテーブルを持つスキーマの名前です。 |
table_name | sql_identifier | その列を含むテーブルの名前です。 |
column_name | sql_identifier | 列の名前です。 |
privilege_type | character_data | 権限の種類です。 SELECT、INSERT、UPDATE、もしくはREFERENCESです。 |
is_grantable | character_data | この権限を付与可能な場合はYES、さもなくばNOです。 |