PG 資料庫只讀使用者的建立。

babyyellow發表於2018-08-16

我們在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部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-2200211/,如需轉載,請註明出處,否則將追究法律責任。

相關文章