他のバージョンの文書9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

30.7. column_privileges

column_privilegesビューは、現在のユーザに対し、または、現在のユーザによって、列に与えられた権限を全て識別します。 列と許可投与者、許可受領者の組み合わせ毎に1行があります。 グループに与えられた権限はrole_column_grantsビューで識別されます。

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

表 30-5. 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です。

grantee列では、ユーザとグループの区別を行わないことに注意してください。 同じ名前のユーザとグループが存在する場合、残念ながら、これらを区別できません。 今後のPostgreSQLのバージョンでは、同じ名前を持つユーザとグループを禁止する可能性があります。