PostgreSQL权限管理之创建可更新表的普通用户

一、环境

我们都知道,超级用户的权限太大了,为了数据库的安全,对于非管理员账号,需要创建普通用户。删除public下所有非超户的select权限。

二、语法

三、创建只读用户
1. 先创建表t1

2. 创建用户u1

3. 赋予u1对表的只读权限
因为创建的普通用户默认是没有任何权限的

4. 创建表t2

5. 验证u1的权限

可见u1是有t1表的读权限,但没有t2表的读权限,这样是不是意味着每次新建表就要赋一次权限?

6. 解决办法

grant是赋予用户schema下当前表的权限,alter default privileges是赋予用户schema下表的默认权限,这样以后新建表就不用再赋权限了。当我们创建只读账号的时候,需要执行grant和alter default privileges。

四、创建可更新用户
1. 创建u2用户

2. 赋予更新权限

3. 创建表t4

4. 查看权限

可以正常增删改查

5. 序列的权限与解决办法
在insert的时候,指定列插入,主键id是serial类型会默认走sequence的下一个值,但前面只赋予了表的权限,所以会出现下面的问题:

五、删除用户

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部