首先是在CDB中建的表。
我用system在CDB中建了表,然后給普通用戶授權可以查看表,commit過。
但是一用普通用戶連接資料庫,再來查詢這個表,就會提示:表或視圖不存在。
回傳去再用system登錄,查詢這個表,就查得到了。
這是怎么回事?求解答!!!
uj5u.com熱心網友回復:
但是一用普通用戶連接資料庫,再來查詢這個表,就會提示:表或視圖不存在。select * from system.table_name
uj5u.com熱心網友回復:
成功了,靴靴!但是為什么訪問system建的表就需要加上這個?
我是大學里剛剛學oracle,請前輩諒解~
uj5u.com熱心網友回復:
system 在執行了create table xxx().. .,這個表的所有者就是 system ;另一個用戶登錄進來, select * from xx ,是查詢自己的表;但是自己以沒有這張表。 所以就報錯了;
uj5u.com熱心網友回復:
謝謝版主大大! 懂了! 這些知識是在oracle手冊里會有嗎?我去下載一本備用
uj5u.com熱心網友回復:
如果英文可以的話,可以去看官方檔案。 中文的資料,可以看看百度一下 oracle 基礎知識;
uj5u.com熱心網友回復:
資料庫下有用戶用戶下有物件,物件有表、索引、視圖等
如果一個用戶想查詢另外一個用戶下的表,則擁有該表的查詢權限
訪問時可以采用 用戶名.物件名的方法
不加用戶名的話,默認是查詢當前用戶下的物件字典表
uj5u.com熱心網友回復:
system 在執行了create table xxx().. .,這個表的所有者就是 system ; 你用另一個用戶登錄進來, select * from xx ,是查詢自己的表;它自己以沒有這張表。 所以就報錯了;elect * from system.table_name 要在前面加上表的擁有者
uj5u.com熱心網友回復:
建同義詞是否可以。
uj5u.com熱心網友回復:
各個物件前不添加system.xx擁有者,默認是在本用戶下查找的,若想訪問其他用戶的物件,就要在需要訪問的物件前加上其他用戶名。uj5u.com熱心網友回復:
資料庫用戶下物件有很多,表、索引、視圖等如果一個用戶想查詢另外一個用戶下的表,則擁有該表的查詢權限
訪問時可以采用 用戶名.物件名的方法。
不加用戶名的話,默認是查詢當前用戶下的物件字典表
uj5u.com熱心網友回復:
SYSTEM也是用戶啊 , 表在另一個用戶下,不同用戶之間查詢表要加上模式(用戶)名啊轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/73352.html
標籤:基礎和管理
下一篇:存盤程序動態sql變數賦值問題
