历史版本。 PostgreSQL 8.1 已结束支持。 请参阅 当前版本手册.
31.7. column_privileges #
视图column_privileges标识所有授予给当前用户或者由当前用户授予的列权限。对每一个列、授予者、被授予者的组合只有一行。授予给组的权限在视图role_column_grants中标识。
在PostgreSQL中,你只能对整个表授予权限,而不能对单个列授权。因此,这个视图包含与table_privileges相同的信息,只是通过每个适当表中每一列一行的方式来表示,但它只覆盖列粒度可能的权限类型:SELECT、INSERT、UPDATE、REFERENCES。如果你想让你的应用适应将来可能的发展,在涉及这些权限类型时,用这个视图代替table_privileges通常是正确的选择。
表 31.5. 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
|
注意,grantee列不区分用户和组。如果你的用户和组同名,很遗憾无法区分它们。PostgreSQL的未来版本可能会禁止用户和组同名。