PostgresSQL 数据库权限

应用场景:

程序需要同时连接放在一台服务器里的两个数据库,其中一个数据库db2里存放机密数据,不希望被用户访问到。两个数据库和表的owner都是postgres,为superuser。因此希望用户无法登录数据库db2,但不影响对数据库db1和其中的表进行所有权限的操作。

简化问题:如何使用户user1只对指定数据库db1中的表进行操作,而没有权限登入其他数据库db2。

解决思路:新建用户user1,将数据库db1的owner指定为用户user1,对数据库db1内所有表赋予用户user1所有权限。同时由于另一个数据库db2的owner为postgres,user1没有权限登录db2。

 

pg库中用户权限分为两种:对数据库操作的权限,对表操作的权限。

一、数据库权限的设置需要进入到psql中

1. 赋予权限需要以管理员账号登录进行修改。

psql -U postgres

2. 新建用户user1,设置密码。例如123456(需加单引号)。

create user user1 with password '123456';

3. 修改数据库owner

alter database db1 owner to user1;

4. 赋予用户user1操作数据库的权限

grant all privileges on database db1 to user1;

 

二、对某数据库中表的权限进行设置需要进入到对应库中。

例如想要对数据库db1进行操作,将权限赋给用户user1:

1. 进入管理员

psql -U postgres

2. 进入对应数据库db1

\c db1

3. 赋予用户user1数据库操作权限

grant all privileges on all tables in schema public to user1;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值