同义词&物化观点

时间:2016-02-26 18:07:43

标签: oracle materialized-views synonym multiple-users

  1. 我有两张桌子。 a)学生b)restricted_student。
    1. 两个用户a)管理员b)用户
    2. 两个用户的同义词 stu 。在admin中它指的是学生但是对于用户来说它指的是restricted_student。
  2. 我想创建一个物化视图MV。 物化视图的代码看起来像

    CREATE MATERIALIZED VIEW SELECT TABLE_NAME,COLUMN_NAME FROM USER_TAB_COLUMNS;
    

    如果我连接到管理员,那么它应该引用学生,对于用户,它应该通过传递唯一的同义词名称stu来引用restricted_student。

    之类的东西
    SELECT TABLE_NAME,COLUMN_NAME FROM USER_TAB_COLUMNS E='st';
    

    当我连接到用户时,我想要的结果应该是 restricted_student表格列。每当我连接到管理员时,它应该给出学生表格列

    我创建了所有上述对象。但是物化视图没有按照我的意愿给出预期的结果。

1 个答案:

答案 0 :(得分:0)

您可以使用普通视图,您可以将这两个表联合起来并由登录的用户进行过滤。 另请检查Oracle RLS(行级安全性),https://docs.oracle.com/cd/B28359_01/network.111/b28529/intro.htm

无论应用程序和用户如何,您都可以控制where子句的方式。这样,您可以更好地控制查询记录。

例如,

管理员用户
select * from stu;

普通用户
select * from stu;

根据您为RLS设置的谓词,会有完全不同的结果。