你應(yīng)該知道的數(shù)倉安全——對象訪問控制

      網(wǎng)友投稿 687 2025-04-02

      安全認(rèn)證可以保證建立安全的數(shù)據(jù)庫連接,而建立連接后的安全訪問保護(hù)則是基于角色的對象訪問控制。用戶和權(quán)限的基礎(chǔ)概念在博文GaussDB(DWS) SQL進(jìn)階-database、schema、user和權(quán)限控制中有介紹,本文主要介紹一下具體的對象訪問控制。

      訪問控制列表

      訪問控制列表(Access Control List, ACL)是對象權(quán)限管理和權(quán)限檢查的基礎(chǔ),每個(gè)數(shù)據(jù)庫對象都具有ACL,ACL是存儲控制項(xiàng)(Access Control Entry, ACE)的集合,ACE中記錄著受權(quán)者grantee、grantee該用戶在對象上的操作權(quán)限和grantor授權(quán)者三部分。 grant 語句語法詳見grant語法說明。

      postgres=# CREATE USER a WITH CREATEDB PASSWORD "QAZ2wsx@123!"; CREATE USER postgres=# CREATE USER b WITH CREATEDB PASSWORD "QAZ2wsx@123!"; CREATE USER postgres=# CREATE USER c WITH CREATEDB PASSWORD "QAZ2wsx@123!"; CREATE USER postgres=# CREATE SCHEMA privs; CREATE SCHEMA postgres=# GRANT CREATE,USAGE ON SCHEMA privs TO a,b,c; GRANT postgres=# SET ROLE a PASSWORD "QAZ2wsx@123!"; SET postgres=> CREATE TABLE privs.t1(a INT, b INT) DISTRIBUTE BY HASH (a); CREATE TABLE postgres=> GRANT SELECT ON TABLE privs.t1 TO b WITH GRANT OPTION; GRANT postgres=> \dp+ privs.t1 Access privileges Schema | Name | Type | Access privileges | Column access privileges --------+------+-------+-------------------+-------------------------- privs | t1 | table | a=arwdDxtA/a +| | | | b=r*/a | (1 row) postgres=> SET ROLE b PASSWORD "QAZ2wsx@123!"; SET postgres=> GRANT SELECT ON privs.t1 TO c; GRANT postgres=> \dp+ privs.t1 Access privileges Schema | Name | Type | Access privileges | Column access privileges --------+------+-------+-------------------+-------------------------- privs | t1 | table | a=arwdDxtA/a +| | | | b=r*/a +| | | | c=r/b | (1 row)

      上面的運(yùn)行結(jié)果可以看到privs.t1這張表的ACL有3條ACE。第一條a=arwdDxtA/a說明grantee為a,擁有權(quán)限為arwdDxtA,grantor為a;第二條b=r*/a表示granteeb擁有由grantora賦予的select權(quán)限與再授予權(quán)限,其中r代表select權(quán)限,*代表再授予權(quán)限;第三條c=r/b說明grantorc僅擁有由granteeb賦予的select權(quán)限。

      特殊的一點(diǎn)是第一條記錄中表owner沒有記錄GRANT OPTION權(quán)限,這是因?yàn)閛wner的GRANT OPTION權(quán)限認(rèn)為是來自于系統(tǒng)的,而不是owner自己擁有的。

      對象權(quán)限管理

      GRANT 命令將數(shù)據(jù)庫對象的特定權(quán)限授予一個(gè)或多個(gè)角色時(shí),如果聲明了 WITH GRANT OPTION ,則被授權(quán)的用戶可以將此權(quán)限賦予他人,否則就不能授權(quán)給他人。

      REVOKE 命令用于撤銷一個(gè)或多個(gè)角色的權(quán)限,若指定了 GRANT OPTION FOR ,則僅撤銷角色對該權(quán)限的再授予能力,而不撤銷權(quán)限本身。否則,權(quán)限(包括再授予權(quán)限)將被撤銷。

      如果用戶擁有某個(gè)權(quán)限,并同時(shí)擁有再授予權(quán)限,并將該權(quán)限授予了其他用戶,那么其他用戶擁有的權(quán)限都被成為依賴性權(quán)限。如果被依賴用戶所持有的權(quán)限或者再授予權(quán)限被撤銷,在聲明 CASCADE 關(guān)鍵字情況下依賴性權(quán)限也會被撤銷,否則撤銷動作提示失敗。revoke 語句語法詳見revoke語法說明。

      在執(zhí)行授權(quán)操作時(shí),可能出現(xiàn)循環(huán)授權(quán)的情況,如下圖所示,A為某個(gè)表的owner,B同時(shí)擁有此表的 SELECT 權(quán)限和 WITH GRANT OPTION 選項(xiàng),且B將此權(quán)限賦予了用戶C,然后C又將權(quán)限賦予了用戶D,最后C企圖將同樣的權(quán)限賦予B。這一系列的授權(quán)操作構(gòu)成了一個(gè)環(huán),這個(gè)環(huán)是不允許出現(xiàn)的。

      postgres=# CREATE USER d WITH CREATEDB PASSWORD "QAZ2wsx@123!"; CREATE USER postgres=# GRANT CREATE,USAGE ON SCHEMA privs TO d; GRANT postgres=# SET ROLE b PASSWORD "QAZ2wsx@123!"; SET postgres=> GRANT SELECT ON privs.t1 TO c WITH GRANT OPTION; GRANT postgres=> SET ROLE c PASSWORD "QAZ2wsx@123!"; SET postgres=> GRANT SELECT ON privs.t1 TO d WITH GRANT OPTION; GRANT postgres=> \dp+ privs.t1 Access privileges Schema | Name | Type | Access privileges | Column access privileges --------+------+-------+-------------------+-------------------------- privs | t1 | table | a=arwdDxtA/a +| | | | b=r*/a +| | | | c=r*/b +| | | | d=r*/c | (1 row) postgres=> SET ROLE d PASSWORD "QAZ2wsx@123!"; SET postgres=> GRANT SELECT ON privs.t1 TO b WITH GRANT OPTION; ERROR: grant options cannot be granted back to your own grantor

      總結(jié)

      用戶是權(quán)限的最終體現(xiàn)者,所有的權(quán)限管理最終都體現(xiàn)在用戶對數(shù)據(jù)庫對象的操作權(quán)限是否被允許。合理的進(jìn)行權(quán)限授予,可以保護(hù)數(shù)據(jù)的安全性,防止非法用戶讀寫數(shù)據(jù)。

      參考文檔:

      你應(yīng)該知道的數(shù)倉安全——對象訪問控制

      1.GaussDB(DWS) SQL進(jìn)階-database、schema、user和權(quán)限控制

      2.你應(yīng)該知道的數(shù)倉安全——默認(rèn)權(quán)限實(shí)現(xiàn)共享schema

      3.你應(yīng)該知道的數(shù)倉安全——安全認(rèn)證

      想了解GuassDB(DWS)更多信息,歡迎微信搜索“GaussDB DWS”關(guān)注微信公眾號,和您分享最新最全的PB級數(shù)倉黑科技,后臺還可獲取眾多學(xué)習(xí)資料哦~

      EI企業(yè)智能 Gauss AP 數(shù)據(jù)倉庫服務(wù) GaussDB(DWS) 數(shù)據(jù)庫

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:冷鏈管理系統(tǒng)
      下一篇:甘特圖編制
      相關(guān)文章
      亚洲Av无码国产情品久久| 亚洲天天在线日亚洲洲精| 亚洲精品视频在线观看视频| 亚洲VA中文字幕不卡无码| 区久久AAA片69亚洲| 中文字幕亚洲第一| 亚洲综合国产精品第一页| 亚洲一级特黄无码片| 久久亚洲国产成人精品无码区| 亚洲日韩涩涩成人午夜私人影院| 亚洲国产中文字幕在线观看| 亚洲精品乱码久久久久久不卡 | 亚洲免费观看网站| 亚洲人成7777影视在线观看| 亚洲人成网站18禁止久久影院 | 亚洲videos| 中中文字幕亚洲无线码| 亚洲熟女综合色一区二区三区| 亚洲人成人网毛片在线播放| 亚洲夂夂婷婷色拍WW47| 亚洲国产精品美女久久久久| 99亚洲乱人伦aⅴ精品| 亚洲成?Ⅴ人在线观看无码| 亚洲男女内射在线播放| 亚洲中文字幕无码久久综合网| 亚洲精品无码专区在线在线播放| 亚洲va无码专区国产乱码| 亚洲黄网在线观看| 亚洲一区在线视频观看| 亚洲人片在线观看天堂无码| 日本亚洲高清乱码中文在线观看| 亚洲精品99久久久久中文字幕| 久久亚洲国产精品五月天婷| 国产亚洲综合网曝门系列| 久久久久久亚洲av成人无码国产 | jjzz亚洲亚洲女人| 国产亚洲精品久久久久秋霞| 国产av天堂亚洲国产av天堂| 亚洲黄色网址大全| 亚洲黄页网在线观看| 国产大陆亚洲精品国产|