pgsql权限

5.6. 权限

如果你创建了一个数据库对象,那么你就成为它的所有者。 缺省时,只有一个对象的所有者可以在对象上做任何事情。 为了允许其它用户使用它,我们必须赋予他们权限。 (不过拥有超级用户权限的用户总是可以访问任何对象。)

注意: 为了改变一个表,索引,序列,或者视图的所有者, 使用 ALTER TABLE 命令。

有好几种不同的权限:SELECTINSERT, UPDATEDELETERULE, REFERENCESTRIGGERCREATE, TEMPORARYEXECUTEUSAGE。 适用于特定对象的权限因对象类型(表、函数等)而异。 和 ALL PRIVILEGES。有关 PostgreSQL 所支持的不同类型的权限的完整信息,请参考 GRANT 的手册页。下面的章节将为你展示如何利用这些权限。

修改或者删除一个对象的权限永远是所有者独有的权限。

注意: 要改变一个表,索引,序列,或者视图的所有者,使用 ALTER TABLE 命令。 还有对应其它对象类型的 ALTER 命令。

要赋予一个权限,我们使用 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;

对象所有者的特殊权限(也就是做 DROPGRANT, REVOKE,等等的权限)总是隐含地属于所有者,并且不能 赋予或者撤销。但是对象所有者可以选择撤销自己的普通权限, 比如把一个表做成对他自己和别人都是只读的。

最初,只有对象所有者(或者超级用户)可以赋予或者撤销对象的权限。 但是,我们可以赋予一个 "with grant option" 权限,这样就给接受权限的人以授予该权限给其它人的权限。 如果授予选项后来被撤销,那么所有那些从这个接受者接受了权限的用户(直接或者通过级连的授权)都将失去该权限。 细节详见GRANT 和 REVOKE 手册页。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值