中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

發布時間:2020-07-08 23:57:35 來源:網絡 閱讀:1765 作者:zhqw8315 欄目:數據庫

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

作者:趙全文 網名:guest

    前日上午,開發同學反饋,應用程序在連接一套Oracle 11.2.0.4.0數據庫的生產用戶時,一直報“無操作表空間”的權限。于是,我趕緊連到SQLPLUS里進行查看該用戶具有什么樣的權限(包括系統權限、角色權限和對象權限),沒有發現什么異常。大家都知道,一般在建立用戶以后,都會給CONNECT和RESOURCE的角色權限。然后,我連到其它無報錯的另一套Oracle 11.2.0.4.0數據庫的生產用戶上查看,兩套數據庫進行對比,發現報錯的那套數據庫沒有“UNLIMITED TABLESPACE”的系統權限,給授予了該系統權限以后,又和開發同學聯系,他說已經正常了。

    鑒于以上的故障處理,下面我們來看一看,Oracle數據庫里的幾個角色和用戶是否具有UNLIMITED TABLESPACE的系統權限?

1.查看3個角色,CONNECT、RESOURCE和DBA。

(1)查看CONNECT角色,見下圖,發現這個角色只具有CREATE SESSION的系統權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE


(2)查看RESOURCE角色,見下圖,發現這個角色具有8個系統權限,但是沒有發現UNLIMITED TABLESPACE的系統權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

(3)查看DBA角色,見下圖,發現該角色具有的系統權限更多,我對PRIVILEGE的列進行了降序處理,以U開頭的系統權限都顯示在了最前面,但并沒有發現UNLIMITED TABLESPACE。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

2.查看2個用戶,SYS和SYSTEM。

(1)查看SYS用戶,見下圖,發現SYS用戶是具有UNLIMITED TABLESPACE的系統權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

(2)查看SYSTEM用戶,見下圖,發現SYSTEM用戶也具有UNLIMITED TABLESPACE的系統權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

從上面的查看,我們可以得出如下結論,

  • 角色CONNECT、RESOURCE和DBA都不具有UNLIMITED TABLESPACE的系統權限;

  • 用戶SYS和SYSTEM都具有UNLIMITED TABLESPACE的系統權限。

接下來,我們再看看,3個角色CONNECT、RESOURCE和DBA具有什么樣的角色權限?

1.角色CONNECT和RESOURCE,見下圖,發現沒有任何的角色權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

2.角色DBA,見下圖,發現該角色具有很多的角色權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

最后,我們在測試庫創建一個表空間TEST和一個用戶TEST,并設置表空間TEST為用戶TEST的默認表空間,授予CONNECT和RESOURCE的角色權限,觀察該用戶具有什么樣的系統權限?操作步驟如下,

(1)查看數據庫版本,如下圖,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

(2)創建表空間TEST,見下圖,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

(3)創建用戶TEST,見下圖,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

(4)給用戶TEST授予CONNECT的角色權限,并查看該用戶具有的系統權限,見下圖,發現并沒有什么系統權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

(5)給用戶TEST授予RESOURCE的角色權限,并查看該用戶具有的系統權限,見下圖,居然發現具有了UNLIMITED TABLESPACE的系統權限。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

從這個操作和前面的演示可以得出,RESOURCE角色本身沒有UNLIMITED TABLESPACE的系統權限,但是給普通用戶授予了該角色,就使得該用戶默認具有了UNLIMITED TABLESPACE的系統權限。帶著這個疑問,查了一下Google,發現AskTom這個網站的回答很權威,而且很有說服力。見操作步驟,如下圖,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

如上,有人提問Tom Kyte大師,為什么RESOURCE角色本身沒有UNLIMITED TABLESPACE的系統權限,但是給普通用戶授予了RESOURCE的角色,該用戶就具有了UNLIMITED TABLESPACE的系統權限呢?

大師是這樣回答的,那個UNLIMITED TABLESPACE的系統權限已經被硬編碼到RESOURCE角色中了,是特殊的一個權限。見下圖所示,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

下面還有來自印度的Haroon大師給出了評論,他是這樣闡述的,在RESOURCE角色里,UNLIMITED TABLESPACE是一個隱藏的系統權限,它在Oracle 12.1.0.1的版本中已經修復了這個bug,并且在12.1.0.1中,創建的普通用戶在授予RESOURCE的角色以后,默認不具有UNLIMITED TABLESPACE的系統權限,所以在撤銷UNLIMITED TABLESPACE的權限時會報錯,提示沒有授予過該權限,見下圖紅色方框描述,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

下面把Tom Kyte大師的工作經歷show一下,以作為我繼續研究Oracle的源動力和精神支柱。

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

(6)給用戶TEST授予DBA的角色權限,查看用戶具有的系統權限,再將用戶的DBA角色權限撤銷,再次查看用戶具有的系統權限有哪些?見下圖操作,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

從上面兩圖可以得出,DBA的角色權限殺傷力很大呀,授予的時候,沒什么影響,撤銷的時候,就把原先的UNLIMITED TABLESPACE的系統權限悄悄的給收回了,感覺好恐怖喲!所以告誡大家,一定不要給普通用戶授予DBA的角色權限,如果曾經授予過,再撤銷以后,一定要給普通用戶單獨授予UNLIMITED TABLESPACE的系統權限或重新授予一次RESOURCE的角色權限。見下圖所示,

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE




如果您覺得此篇文章對您有幫助,歡迎關注微信公眾號:guestart的DBA學習筆記,您的支持是對我最大的鼓勵!

談談Oracle 數據庫的系統權限UNLIMITED TABLESPACE

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪泽县| 海林市| 葫芦岛市| 拉萨市| 南漳县| 侯马市| 连州市| 贵南县| 临泉县| 哈巴河县| 信丰县| 那坡县| 渭南市| 定西市| 酉阳| 壤塘县| 封丘县| 新化县| 鹿邑县| 桦川县| 北川| 仲巴县| 荣成市| 淮南市| 枣强县| 两当县| 灌南县| 岳普湖县| 炉霍县| 阜阳市| 黑水县| 玉环县| 兴义市| 河东区| 南康市| 天全县| 前郭尔| 湖口县| 南澳县| 札达县| 曲松县|