2017-06-13 148 views
0

我的Oracle 12c數據庫中有一個用戶從其他用戶的表中選擇列創建了多個視圖。例如:Oracle數據庫用戶無法在其自己的視圖中看到數據

CREATE OR REPLACE FORCE EDITIONABLE VIEW "MYSER"."VIEW1" (column1, column2, column3) 
    AS SELECT (column1, column2, column3) 
    FROM OTHERSCHEMA.TABLENAME; 

現在運行

select count(1) from MYSER.VIEW1 

爲sys用戶的時候,我可以看到所有的行的存在。但是,只要登錄到MYSER模式並嘗試運行相同的select count語句,我就會得到比總數更少的數字或行,或者根本沒有行。 (做這幾個相同的方式完成的視圖時)

我對所有的OTHERUSER的表授予選擇MYUSER

這個數據從另一個數據庫導入。不知道這是否是可能導致問題的原因。

編輯:我也試着給予

Grant execute on DBMS_RLS to MYUSER; 

思考,這可能是與表分區的問題。這個應用多年前編碼的人可能會覺得很奇怪,因爲我需要找出他們的安全級別或其他地方。

謝謝!

回答

0

視圖只是一個存儲的SQL語句。 當作爲myser連接

select * from view1; 

應該返回完全一樣

select column1, column2, column3 FROM OTHERSCHEMA.TABLENAME; 
+0

由於這是正確的,因爲你已經指出無論哪種方式,(我已經試過兩種方式),它仍然只顯示兩種0行,或者不是全部數量。沒有where子句,所以它應該顯示ALL行。 – kalebm3991

相關問題