weixin_41083434 2023-02-13 14:48 采纳率: 25%
浏览 62
已结题

pgsql角色用户授权

和第三方对接:
我需要将某数据库下某个schema下指定的几个表拿給第三方系统看,
这个第三方系统只能查看该指定的几个表,不能进行进行增删改操作,

解决方法


1、创建只读用户:
CREATE USER ronly WITH ENCRYPTED PASSWORD 'r123456';

2、设置默认事务只读:
alter user ronly set default_transaction_read_only=on;

3、赋予用户连接数据库mypgsql的权限:
GRANT CONNECT ON DATABASE mypgsql to ronly;

4、现有的所有在模式(schema)下的表的使用权限赋给用户ronly
GRANT USAGE ON SCHEMA myschema1  to ronly;

5、赋予用户ronly所有public下的表的selectGRANT SELECT ON myschema1.table1,myschema1.table2 TO ronly;

至此,权限设置完成!

可以达到只读table1,table2的功能
但是我用该只读用户登录数据库之后,发现别的schema 也显示出来了,如myschema2显示出来了,以及上面的myschema1中的table3也显示出来了

请问我们的数据库角色授权可以指定用户登录只显示某个schema下的指定table1、table2,但是不显示table3这样的效果么?

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-14 17:41
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月15日
  • 修改了问题 2月13日
  • 创建了问题 2月13日