oracle无创建directory权限,【DIRECTORY】普通用户创建Oracle DIRECTORY数据库对象的权限需求及探索...
可能遇到的報錯信息如若在創建DIRECTORY之前普通用戶sec未獲得相應權限,將會收到最為常見的“ORA-01031: insufficient privileges”錯誤。模擬再現一下,供大家參考。sec@ora10g> conn / as sysdbaConnected.sys@ora10g> revoke CREATE ANY DIRECTORY from sec;Revoke succeeded.sys@ora10g> conn sec/secConnected.sec@ora10g> create directory dir_test as '/home/oracle/secooler';create directory dir_test as '/home/oracle/secooler'*ERROR at line 1:ORA-01031: insufficient privileges4.獲得DIRECTORY創建結果信息用于查詢獲得DIRECTORY信息的數據庫視圖“僅有”兩個,如下所示。sys@ora10g> select TABLE_NAME from dict where table_name like '%DIRECTORIES';TABLE_NAME------------------------------ALL_DIRECTORIESDBA_DIRECTORIES這里之所以強調“僅有”,是與其他數據庫對象視圖相比較而言的。例如,用于獲得同名的數據庫視圖一般都會有三類,如下所示。sys@ora10g> select TABLE_NAME from dict where table_name like '%SYNONYMS';TABLE_NAME------------------------------DBA_SYNONYMSUSER_SYNONYMSALL_SYNONYMS用于查看DIRECTORY數據庫對象的視圖之所以沒有以USER開頭的是有其具體緣由的。請繼續跟隨我進行探索。我們使用ALL_DIRECTORIES視圖查看剛剛創建成功的DIRECTORY對象。sec@ora10g> col owner for a6sec@ora10g> col DIRECTORY_NAME for a15sec@ora10g> col DIRECTORY_PATH for a30sec@ora10g> select * from all_directories where DIRECTORY_NAME = 'DIR_TEST';OWNER? DIRECTORY_NAME? DIRECTORY_PATH------ --------------- ------------------------------SYS??? DIR_TEST??????? /home/oracle/secooler重點關注一下OWNER字段的返回結果,這里顯示的內容是“SYS”,并不是我們所期待的那個創建DIRECTORY的當前用戶“SEC”!這樣便可以順理成章的給出不存在以USER開頭的“USER_DIRECTORIES”視圖的合理解釋,因為DIRECTORY數據庫對象并不屬于某個具體用戶,都歸SYS用戶所有!5.小結在對Oracle數據庫世界的探索過程中,不要放過任何蛛絲馬跡,每一個細節問題都充滿了樂趣,值得思考和總結。在踐行的征程中我們追求的是一種甚解的態度!Good luck.secooler11.03.27-- The End --
總結
以上是生活随笔為你收集整理的oracle无创建directory权限,【DIRECTORY】普通用户创建Oracle DIRECTORY数据库对象的权限需求及探索...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大豆多少钱一斤啊?
- 下一篇: 怎么弄大量的伊乐神迹石?