在 PostgreSQL 中,权限分为以下几种:
- SELECT
- INSERT
- UPDATE
- DELETE
- TRUNCATE
- REFERENCES
- TRIGGER
- CREATE
- CONNECT
- TEMPORARY
- EXECUTE
- USAGE
1.GRANT语法
GRANT privilege [, ...]
ON object [, ...]
TO { PUBLIC | GROUP group | username }
/*
privilege − 值可以为:SELECT,INSERT,UPDATE,DELETE, RULE,ALL。
object − 要授予访问权限的对象名称。可能的对象有: table, view,sequence。
PUBLIC − 表示所有用户。
GROUP group − 为用户组授予权限。
username − 要授予权限的用户名。PUBLIC 是代表所有用户的简短形式。
*/
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的权限