选择 打开 改范围 完整检索页

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

不受支持的版本: 9.0
历史版本PostgreSQL 9.0 已于 2015 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

20.3. 权限 #

创建对象时会为它指定一个所有者。 所有者通常是执行创建语句的角色。对大多数类型的对象来说,初始状态是只有所有者(或超级用户)能对对象做任何操作。要让其他角色使用它,必须授予权限。 权限有多种不同的类别:SELECTINSERTUPDATEDELETETRUNCATEREFERENCESTRIGGERCREATECONNECTTEMPORARYEXECUTEUSAGE。 关于PostgreSQL支持的不同权限类型的更多信息,见GRANT参考页。

使用GRANT命令来授予权限。例如,如果joe是一个已有角色,accounts是一个已有表,更新该表的权限可以这样授予:

GRANT UPDATE ON accounts TO joe;

特殊名称PUBLIC可用于向系统中的每个角色授予权限。在具体权限的位置写ALL,表示授予适用于该对象的所有权限。

要撤销权限,使用名称贴切的 REVOKE命令:

REVOKE ALL ON accounts FROM PUBLIC;

对象所有者的特殊权限(即修改或销毁对象的权利)总是隐含在所有者身份中,不能被授予或撤销。但所有者可以选择撤销自己的普通权限,例如使表对他自己和其他人都变为只读。

可以用与对象类型相对应的ALTER命令把对象指派给新的所有者。超级用户总是可以这样做;普通角色只有在其既是对象的当前所有者(或所有者角色的成员)、又是新所有者角色的成员时才能这样做。

提交更正

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