ITPub博客

首页 > 数据库 > PostgreSQL > PG 数据库只读用户的建立。

PG 数据库只读用户的建立。

原创 PostgreSQL 作者:babyyellow 时间:2018-08-16 15:22:53 0 删除 编辑

我们在oracle数据库下面建立只读用户是很方便的,建用户,授权,建立同义词 搞定

pg 下面是不能建立同义词的,用视图代替? 


其实不用,有更简单的方法: 

1) 建立只读用户
 create  user  user_reader  password 'user_reader' ; 

  指定只读用户的搜索路径

  alter user user_reader  set search_path=‘user’; 

2) 授权: 

postgres 用户登录的需要授权的数据库

grant select on all tables in schema schema—user  to user_reader ; 

3)  修改 pg_hba.conf  允许登录 ,并重载配置文件

4) 用只读用户登录数据库,直接执行select  * from table  就可以了。

5) 如果不说第5步,你肯定是要回来找我的。 

    在第2步授权的地方,只授对表的访问权限是不行的,还要授个对schema 的访问权限。 

   grant  usage on schema schema_user  to user_reader; 


嗯,  现在可以正常访问了。搞定。 

不过有跟oracle 应该有相同的缺陷,如果新增的表,是无法访问的,

需要重新执行

grant select on all tables in schema schema—user  to user_reader ; 
  这句,或者针对单独的表的授权。 



过以后 要做到新增加的 table 自动对只读用户授权 ,那么下面这句就比较重要了。



alter default privileges in schema schema_name grant select on tables to schema_reader; 



这条sql 的执行, 需要用 table 的ower 去执行,而不是超级用户来执行。 否则用只读用户去查询,会报权限不足,无法查询。 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2200211/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908845