Postgresql 专题
专题目录
您的位置:database > Postgresql专题 > PostgreSQL权限
PostgreSQL权限
作者:--    发布时间:2019-11-20

在数据库中创建对象时,都会为其分配所有者。 所有者通常是执行创建语句的用户。 对于大多数类型的对象,初始状态是只有所有者(或超级用户)可以修改或删除对象。 要允许其他角色或用户使用它,必须授予权限或权限。

postgresql中的不同类型的权限是:

  • select,insert,update,delete,truncate,references,trigger,create,connect,temporary,executeusage

根据对象的类型(表,函数等),权限将应用于对象。 要为用户分配权限,使用grant命令。

grant的语法

grant命令的基本语法如下:

grant privilege [, ...]
on object [, ...]
to { public | group group | username }
  • privilege值可以是:selectinsertupdatedeleteruleall
  • object:要向其授予访问权限的对象的名称。 可能的对象是:表,视图,序列
  • public:表示所有用户的简短形式。
  • group group:授予权限的组。
  • username:授予权限的用户的名称。 public是表示所有用户的简短形式。

revoke的语法

revoke命令的基本语法如下:

revoke privilege [, ...]
on object [, ...]
from { public | group groupname | username }
  • privilege值可以是:selectinsertupdatedeleteruleall
  • object: 授予访问权限的对象的名称。 可能的对象是:表,视图,序列。
  • public:表示所有用户的简短形式。
  • group group:授予权限的组。
  • username:授予权限的用户的名称。 public是表示所有用户的简短形式。

示例

如要理解权限,我们先创建一个user,如下所示:

h3_db=# create user manisha with password 'password';
create role

语句create role 表示创建了一个用户名为manisha

考虑 company 表有以下记录:

h3_db# select * from company;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | paul  |  32 | california|  20000
  2 | allen |  25 | texas     |  15000
  3 | teddy |  23 | norway    |  20000
  4 | mark  |  25 | rich-mond |  65000
  5 | david |  27 | texas     |  85000
  6 | kim   |  22 | south-hall|  45000
  7 | james |  24 | houston   |  10000
(7 rows)

接下来,让我们给予用户“manisha”在表company上授予所有权限,如下所示:

h3_db=# grant all on company to manisha;
grant

语句grant指示所有在company表上的权限都分配给用户“manisha”。

接下来,让我们从用户“manisha”中撤销权限,如下所示:

h3_db=# revoke all on company from manisha;
revoke

revoke表示从用户“manisha”撤消所有权限。甚至可以删除用户,如下所示:

h3_db=# drop user manisha;
drop role

drop role表示从数据库中删除用户“manisha”。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册