2017-06-13 147 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

相关问题