在 PostgreSQL 中,权限分为以下几种:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • TRUNCATE
  • REFERENCES
  • TRIGGER
  • CREATE
  • CONNECT
  • TEMPORARY
  • EXECUTE
  • USAGE

使用GRANT命令对用户分配权限。

1.GRANT语法

  1. GRANT privilege [, ...]
  2. ON object [, ...]
  3. TO { PUBLIC | GROUP group | username }
  4. /*
  5. privilege − 值可以为:SELECT,INSERT,UPDATE,DELETE, RULE,ALL。
  6. object − 要授予访问权限的对象名称。可能的对象有: table, view,sequence。
  7. PUBLIC − 表示所有用户。
  8. GROUP group − 为用户组授予权限。
  9. username − 要授予权限的用户名。PUBLIC 是代表所有用户的简短形式。
  10. */

2.REVOKE取消权限

REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }

3.示例

--创建一个用户
runoobdb=# CREATE USER runoob WITH PASSWORD '123456';
CREATE ROLE

--对company表操作
--给runoob分配权限
runoobdb=# GRANT ALL ON company TO runoob; --这里指定的是ALL,所有权限
GRANT

--删除runoob用户的权限
runoobdb=# REVOKE ALL ON company FROM runoob;
REVOKE

--删除用户
runoobdb=# DROP USER runoob;
DROP ROLE

--如果不删除runoob用户的权限,是无法删除该用户的
runoobdb=# DROP USER runoob;
错误:  无法删除"runoob"因为有其它对象倚赖它
描述:  表 company的权限