淺談PostgreSQL用戶權(quán)限

問題

經(jīng)常在PG群里看到有人在問“為什么我對表賦予了權(quán)限;但是還是不能訪問表”

解析

若你看懂德哥這篇文章PostgreSQL邏輯結(jié)構(gòu)和權(quán)限體系介紹上面對你就不是困擾你的問題

解決這個問題很簡單;在解決之前;我們要先了解PostgreSQL的邏輯結(jié)構(gòu)、以及與用戶之間的關(guān)系碴裙。

盜用德哥的圖;來詮釋下邏輯結(jié)構(gòu)仅讽;PostgreSQL邏輯結(jié)構(gòu)有4層:實例->數(shù)據(jù)庫->schema->數(shù)據(jù)庫對象

PostgreSQL邏輯架構(gòu)圖

可以看出用戶不在PostgreSQL里面陶缺;是獨立之外的object;這個跟Oracle邏輯結(jié)構(gòu)不一致洁灵。它不屬于某個數(shù)據(jù)庫饱岸、或者某個schema。

若用戶不是數(shù)據(jù)庫屬主的用戶徽千;要訪問table1苫费;該怎么辦?有三步

  • 首先你把數(shù)據(jù)庫connect的權(quán)限賦予用戶
  • 再則你需要把table1所在的schema的使用權(quán)限賦予用戶
  • 最后你需要把table的select的權(quán)限賦予

討論

現(xiàn)實驗環(huán)境

  • 用戶:lottu1双抽、lottu2百框。
  • 數(shù)據(jù)庫:db1
  • schema:lottu1
  • 表:tbl_lottu_01
# 創(chuàng)建用戶lottu1
postgres=# create user lottu1;
CREATE ROLE
# 創(chuàng)建用戶lottu2
postgres=# create user lottu2;
CREATE ROLE
# 創(chuàng)建數(shù)據(jù)庫db1;屬于lottu1
postgres=# create database db1 owner  lottu1;
CREATE DATABASE
# 創(chuàng)建schema牍汹、table铐维、并插入記錄
postgres=# \c db1 lottu1;
You are now connected to database "db1" as user "lottu1".
db1=> create schema lottu1;
CREATE SCHEMA
db1=> create table tbl_lottu_01(id int, info text, reg_time timestamp);
CREATE TABLE
db1=> insert into tbl_lottu_01 select 1,'lottu',now();
INSERT 0 1

新建的數(shù)據(jù)庫對所有的用戶都有連接權(quán)限;不管是不是超級用戶慎菲、屬主用戶

db1=> \c db1 lottu2
You are now connected to database "db1" as user "lottu2".

針對這種情況嫁蛇;這樣是不是很不安全;非主用戶為啥不及可以連數(shù)據(jù)庫露该;還可以在對應(yīng)的public-schema下可以創(chuàng)建object睬棚。要實現(xiàn)隔離;我們可以回收數(shù)據(jù)庫權(quán)限解幼;只有超級用戶抑党、屬主用戶可以連。

db1=> \c db1 postgres
You are now connected to database "db1" as user "postgres".
db1=# revoke CONNECT ON DATABASE db1 from public;
REVOKE
db1=# \c db1 postgres
You are now connected to database "db1" as user "postgres".
db1=# \c db1 lottu1;
You are now connected to database "db1" as user "lottu1".
db1=> \c db1 lottu2;
FATAL:  permission denied for database "db1"
DETAIL:  User does not have CONNECT privilege.
Previous connection kept

現(xiàn)在實現(xiàn)用戶lottu2不能連接數(shù)據(jù)庫db1∧彀冢現(xiàn)在需求tbl_lottu_01給db2查詢底靠。而表tbl_lottu_01屬于數(shù)據(jù)庫db1下面schema-lottu1的。

db1=> grant CONNECT ON DATABASE db1 to lottu2;
GRANT
db1=> grant USAGE ON SCHEMA lottu1 to lottu2;
GRANT
db1=> grant select on TABLE tbl_lottu_01 to lottu2;
GRANT
db1=> \c db1 lottu2;
You are now connected to database "db1" as user "lottu2".
db1=> select * from lottu1.tbl_lottu_01;
 id | info  |          reg_time          
----+-------+----------------------------
  1 | lottu | 2020-05-19 10:50:15.206569
(1 row)

經(jīng)過一層層的賦權(quán)台汇;用戶lottu2可以select表tbl_lottu_01苛骨。若需求將schema-lottu1下所有的表都賦于給lottu2。將上面的修改下即可

grant select on ALL TABLES IN SCHEMA lottu1 to lottu2;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苟呐,一起剝皮案震驚了整個濱河市痒芝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牵素,老刑警劉巖严衬,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異笆呆,居然都是意外死亡请琳,警方通過查閱死者的電腦和手機粱挡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俄精,“玉大人询筏,你說我怎么就攤上這事∈郏” “怎么了嫌套?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長圾旨。 經(jīng)常有香客問我踱讨,道長,這世上最難降的妖魔是什么砍的? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任痹筛,我火速辦了婚禮,結(jié)果婚禮上廓鞠,老公的妹妹穿的比我還像新娘帚稠。我一直安慰自己,他們只是感情好诫惭,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布翁锡。 她就那樣靜靜地躺著蔓挖,像睡著了一般夕土。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瘟判,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天怨绣,我揣著相機與錄音,去河邊找鬼拷获。 笑死篮撑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的匆瓜。 我是一名探鬼主播赢笨,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼驮吱!你這毒婦竟也來了茧妒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤左冬,失蹤者是張志新(化名)和其女友劉穎桐筏,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拇砰,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡梅忌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年狰腌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牧氮。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡琼腔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出踱葛,到底是詐尸還是另有隱情展姐,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布剖毯,位于F島的核電站圾笨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逊谋。R本人自食惡果不足惜擂达,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胶滋。 院中可真熱鬧板鬓,春花似錦、人聲如沸究恤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽部宿。三九已至抄腔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間理张,已是汗流浹背赫蛇。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雾叭,地道東北人悟耘。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像织狐,于是被迫代替她去往敵國和親暂幼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361