ora-31603: 物件“表名”屬於型別 Table,在方案“使用者名稱”中未找到
1、一次想查詢表附加日誌:
dbms_metadata.get_ddl('TABLE','表名','使用者名稱') from dual;
2、報錯如下:
ora-31603:物件“表名”屬於型別 Table,在方案“使用者名稱”中未找到
3、原因:
使用者缺少相關資料字典檢視的查詢許可權。
4、解決辦法:
grant select_catalog_role to 使用者名稱.表名;
注:授權select any dictionary許可權則報錯依舊。
5、總結:
select any dictionary 與 select_catalog_role
相同之處:有了這兩個中的一個,基本就可以查詢資料字典
不同之處:
1) select any dictionary是一種系統許可權(system privilege),而select_catalog_role 是一種角色(a role)。
2) 角色的話需要重新登入或者顯式的set role 來生效,而賦予系統許可權是立即生效的。(P.S. 同樣revoke許可權也 是立即生效)
3) select_catalog_role可以檢視一些資料字典的檢視·(可以看role的定義),如dba_之類的,而select any
dictionary 可以檢視sys的表,select_catalog_role看不到。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27126919/viewspace-1128070/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript 節點物件的型別與名稱JavaScript物件型別
- 找出熱點塊所屬的使用者,物件名,型別物件型別
- 獲取物件屬性型別、屬性名稱、屬性值的研究:反射和JEXL解析引擎物件型別反射
- C#名稱空間、型別的別名管理C#型別
- 物件前面是使用者名稱還是schema名!物件
- Rust 通過屬性設定 crate 名稱、版本和型別Rust型別
- Rust 透過屬性設定 crate 名稱、版本和型別Rust型別
- 由allocation_unit_id查詢其所屬物件名稱物件
- 修改oracle使用者名稱,表空間名字,Oracle
- thinkphp中ajax使用者名稱校驗PHP
- 在SQL Server中修改欄位型別和欄位名稱的儲存過程SQLServer型別儲存過程
- C#解決一個奇怪的,名稱空間“XXX”中不存在型別或名稱空間名稱“xxx”的問題C#型別
- sql server 登入名和使用者名稱的區別和聯絡SQLServer
- 未能找到型別或名稱空間名稱“MySql”(是否缺少 using 指令或程式集引用?)型別MySql
- TypeScript type 型別別名TypeScript型別
- 表單使用者名稱和密碼記住效果密碼
- 修改 Ubuntu 系統使用者名稱和登入名Ubuntu
- github修改使用者名稱Github
- oracle更改使用者名稱Oracle
- 快速修改Oracle使用者名稱Oracle
- oracle中的某一個使用者名稱修改Oracle
- 修改oracle中的使用者名稱和密碼Oracle密碼
- C#學習 [型別系統] 名稱空間(12)C#型別
- 在url中通過屬性名獲取屬性值
- cluster table及其屬表的table與普通表在資料塊block中儲存storage的區別BloC
- PHP 物件導向 (三)名稱空間PHP物件
- InternetExplorer表單及使用者名稱密碼提交密碼
- 使用“基表修改法”快速修改Oracle使用者名稱(z)Oracle
- 【USER】使用“基表修改法”快速修改Oracle使用者名稱Oracle
- win10怎麼改使用者名稱_win10如何更改使用者名稱Win10
- Sql Server關於許可權、角色以及登入名、使用者名稱的總結SQLServer
- mysql之查詢使用者名稱MySql
- 更改MYSQL使用者名稱密碼MySql密碼
- Git使用者名稱郵箱配置Git
- JavaScript 中的名稱空間JavaScript
- joins型別名詞型別
- 根據教程中,輸錯密碼或使用者名稱後,卻不能返回‘使用者名稱或密碼錯誤’密碼
- 關於登入(使用者名稱,密碼,驗證碼)密碼