PostgreSQL 创建只读用户,并开放特定的表。(实例)

创建只读用户并且开放特定的表。

安装数据库的时候会默认的创建一个postgres 的 superuser 创建别的用户必须是按照这个用户开始创建的。

所以说第一个用户的创建应该是通过 root 登录linux 的postgres 用户(不需要输入密码) 来创建超级管理员用户。

 

1 创建超级用户的角色

---1 创建超级用户的角色
Create role super LOGIN PASSWORD '123456' SUPERUSER VALID UNTIL 'infinity'

--- 可以设定过期时间
Create role super LOGIN PASSWORD '123456' SUPERUSER VALID UNTIL '2020-1-1 00:00'

权限中还包括了,过期的参数设置, valid until 'infinity'

2 创建角色组

 一般情况是不给组角色登录权限的。应为组角色的概念是将一组权限汇聚成一个集合。以方便批量授予别的普通用户。

Create role grouprole INHERIT
--
GRANT grouprole TO leo;

Inherit  的用法,表示组角色grouprole 的 任何一个成员角色自动继承 除了 superuser 之外的所有权限。

Noinherit 的功能是禁止将权限授予成员角色。

3 创建自读role group 角色组(获得的定表的权限 或者 schema 的权限)

 a 创建角色组

CREATE ROLE readaccess;

b 授予访问的权限(对于新建的schema来说要指定 usage 权限)

GRANT USAGE ON SCHEMA public TO readaccess;

c 这里可以设定访问特定的表还是访问访问所有的表的权限

 可以访问public 下的所有表

GRANT SELECT ON ALL TABLES IN SCHEMA public TO readaccess;

访问指定的表的权限

GRANT SELECT ON tbl_user TO readaccess;

d 如果是访问所有表 设定新建的表的访问权限。

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readaccess;

e 创建可登录的角色(继承一下上面打下来的江山 哈哈哈哈 大功告成)

CREATE USER son WITH PASSWORD 'youqianla';

GRANT readaccess TO son;

总结一下,还是要多多的动手,不动手不去试永远都不会。做人应该也是一样的,没有经历就不会知道当事人所经历了什么。

有什么问题,欢迎大家指正。欢迎大家交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值