历史版本。 PostgreSQL 7.1 已结束支持。 请参阅 当前版本手册.
7.3. 权限 #
创建数据库对象时,它会被指派一个所有者。所有者是执行创建语句的用户。目前没有更改数据库对象所有者的完善接口。默认情况下,只有所有者(或超级用户)才能对对象做任何操作。为了让其他用户能使用它,必须授予权限。
目前有四种不同的权限:select(读)、insert(追加)和 update/delete(写),以及
RULE,即在表上创建重写规则的权限。修改或销毁对象的权利始终只属于所有者。要授予权限,使用
GRANT 命令。因此,如果
joe 是一个现有用户,accounts 是一个现有的表,写访问权限可以用下面的命令授予:
GRANT UPDATE ON accounts TO joe;
执行这条命令的用户必须是表的所有者。要向组授予权限,使用
GRANT SELECT ON accounts TO GROUP staff;
特殊“用户”名 PUBLIC
可用来向系统中的每个用户授予权限。用
ALL 代替具体的权限就表示授予所有权限。
要收回权限,使用名字同样贴切的
REVOKE 命令:
REVOKE ALL ON accounts FROM PUBLIC;
表拥有者持有的权限集总是隐含的,永远不能被收回。