pg/og数据库权限管理详情1

前置

pg/og中,围绕角色进行权限的管理,它可以被看作时一个user或者一组user。区分role、user、group。user和group是pg8.1之前的两个实体,role是那之后唯一存在的实体。现在user和role等价。

初始化

数据库刚创建的时候,会自动创建一个超级用户角色postgres(pg)/omm(og)。任何操作都是从该用户开始的。

注意1:

不要使用超级用户,而是创建一个具有createdb、createrole的角色进行日常管理,以避免误操作带来的危险。

注意2:

创建database、创建角色算是特殊的权限,要与后文介绍的可授予的权限区分开来。

实验前置

创建实验用户:nineuser

创建实验数据库:nine

创建实验schema:nine

创建实验表:testafter

create user nineuser with password '12qw.12qw';

create database nine;

\c nine

create schema nine;

set search_path='nine';

create table testafter(id int);

实验1

问题研究:实验创建的对象都是由超级用户omm创建的。那么我们现在用nineuser登录nine库,select查看schema为nine下的表可以吗

gsql -U nineuser -d nine -r

set search_path='nine';

\dt

select * from testafter1;

答:对于刚创建的用户对于任何库来说只能\d、\dn查看对象描述。而对于select是没有权限的,如上如select会报错。

实验2

实验研究:赋予usage权限schema:nine给nineuser,会发生什么。

gsql -r

\c nine

grant usage on schema nine to nineuser;

gsql -U nineuser -d nine -r

set search_path='nine';

select * from testafter1;

答:根据上图实验结果可以看到,给了usage权限, 该用户还是无法查看对应schema下的对象表。那这里就要说下一个实验点:usage和select的区别。

实验3

实验研究:usage和select的区别,为什么usage后还要赋予select

gsql -r

\c nine

grant select on schema nine to nineuser;

gsql -U nineuser -d nine -r

set search_path='nine

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值