我的Oracle 12c数据库中有一个用户通过从另一个用户的表中选择列来创建多个视图。例如:
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语句,我得到的数字或行数比总数少,或者根本没有行。 (当以同样的方式完成几个视图时这样做)
我已将所有<em> OTHERUSER的表格中的选择权授予 MYUSER
此数据是从另一个数据库导入的。不确定这是否可能导致问题。
编辑:我也尝试过授予Grant execute on DBMS_RLS to MYUSER;
认为它可能是表中分区的问题。几年前编写此应用程序的人员可能会发现我需要找出他们的安全级别或适当的位置。
谢谢!
答案 0 :(得分:0)
视图只是一个存储的SQL语句。 当作为myser连接时
select * from view1;
应该与
完全相同select column1, column2, column3 FROM OTHERSCHEMA.TABLENAME;