↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 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
历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.

5.7. 权限 #

当你创建一个数据库对象时,你就成为它的所有者。默认情况下,只有对象的所有者才能对对象做任何操作。为了让其他用户能够使用它,必须授予权限。(也有一些用户拥有超级用户权限。这些用户总是可以访问任何对象。)

注意

要更改表、索引、序列或视图的所有者,请使用ALTER TABLE命令。

有多种不同的权限:SELECT、INSERT、UPDATE、DELETE、RULE、REFERENCES、TRIGGER、CREATE、TEMPORARY、EXECUTE、USAGE 和 ALL PRIVILEGES。关于 PostgreSQL 支持的各种权限类型的完整信息,请参阅GRANT参考页。后面的各节和各章还会向你展示这些权限是如何使用的。

修改或销毁对象的权利始终只属于该对象的拥有者。

要分配权限,使用 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;

表拥有者的特殊权限(即执行 DROP、GRANT、REVOKE 等的权利)总是隐含在拥有者身份中,不能被授予或收回。但表拥有者可以选择收回自己的普通权限,例如让自己和别人都只能对表进行只读访问。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.