PostgreSQL PRIVILEGES(权限)

PostgreSQL PRIVILEGES(权限)

无论何时创建数据库对象,都会为其分配一个所有者,所有者通常是执行 create 语句的人。
对于大多数类型的对象,初始状态是只有所有者(或超级用户)才能修改或删除对象。要允许其他角色或用户使用它,必须为该用户设置权限。
在 PostgreSQL 中,权限分为以下几种:

  1. SELECT
  2. INSERT
  3. UPDATE
  4. DELETE
  5. TRUNCATE
  6. REFERENCES
  7. TRIGGER
  8. CREATE
  9. CONNECT
  10. TEMPORARY
  11. EXECUTE
  12. USAGE

根据对象的类型(表、函数等),将指定权限应用于该对象。
要向用户分配权限,可以使用 GRANT 命令。

GRANT 语法

GRANT 命令的基本语法如下:

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

另外,我们可以使用 REVOKE 命令取消权限,REVOKE 语法:

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

实例

为了理解权限,创建一个用户:
highgo=# create user hgdb with password ‘password’;
CREATE ROLE
信息 CREATE ROLE 表示创建了一个用户 “hgdb”。

实例

创建 company 表,数据内容如下:

 highgo=# select  * from company ; 
 id | name | age |                       address                        | salary 
----+------+-----+------------------------------------------------------+--------
  1 | 张三 |  32 | 济南                                                 |  20000
  2 | 李四 |  25 | 青岛                                                 |  15000
  3 | 王五 |  23 | 北京                                                 |  20000
  4 | 赵六 |  25 | 上海                                                 |  65000
  5 | 小明 |  27 | 广州                                                 |  85000
  6 | 小红 |  22 | 深圳                                                 |  45000
  7 | 小强 |  24 | 成都                                                 |  10000
(7 行记录)

现在给用户 “hgdb” 分配权限:

highgo=# GRANT ALL ON company  TO hgdb;
GRANT

信息 GRANT 表示所有权限已经分配给了 “hgdb”。
下面撤销用户 “hgdb” 的权限:

highgo=# REVOKE ALL ON company  FROM hgdb;
REVOKE

信息 REVOKE 表示已经将用户的权限撤销。
你也可以删除用户:

highgo=#  DROP USER hgdb;
DROP ROLE

信息 DROP ROLE 表示用户 “hgdb” 已经从数据库中删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值