pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
创建数据库对象时,它会被指派一个 所有者。所有者是执行创建语句的 用户。要更改表、索引、序列或视图的 所有者,请使用 ALTER TABLE 命令。默认 情况下,只有所有者 (或超级用户)才能对对象做任何 操作。为了让 其他用户能使用它,必须授予 权限。
有多种不同的权限: SELECT, INSERT, UPDATE, DELETE, RULE, REFERENCES, TRIGGER, CREATE, TEMPORARY, EXECUTE, USAGE 和 ALL PRIVILEGES。 关于 PostgreSQL 支持的各种权限的更多信息,请参阅 PostgreSQL 7.3.21 参考手册 中的 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 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。