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