↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 已于 2010 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

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 等的权利) 总是隐含在拥有者身份中, 不能被授予或收回。但表拥有者可以选择 收回自己的普通权限,例如让自己和别人 都只能对表进行只读访问。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。