【问题标题】:Views with Granted Select/Insert Permissions具有授予选择/插入权限的视图
【发布时间】:2011-08-24 03:02:57
【问题描述】:

我正在大学里开发一个 Oracle9i 服务器。

我已授予朋友选择和插入视图的权限 'v1'

他可以在视图上 selectinsert,但显然当他插入一行时,视图会为他的用户 ID 维护一个单独的副本。

即。当我说:

select * from v1;

我无法看到他插入到视图中的行 'v1'。这是默认行为吗?我是否应该能够看到他插入的行,因为它仍然拥有是我吗?

我是新手,所以我认为我不了解有关视图和授予权限的一些概念。

【问题讨论】:

    标签: views oracle9i grant


    【解决方案1】:

    如果其他用户实际插入了符合视图条件的行并且其他用户正在提交他的事务,那么您将能够在会话中看到该行。

    • 您确定其他用户实际上正在使用与您相同的对象吗?他或她所指的 V1 是否有可能与您所指的 V1 不同?你们是否都使用完全限定的对象名称(即SELECT * FROM Pavitar.v1
    • 您确定其他用户在执行 INSERT 后实际上正在提交他的事务吗?
    • 您确定要插入的行符合视图的标准吗?

    例如,如果我创建一个视图 EMP_VIEW,它返回 EMP 表中的所有数据,其中 DEPTNO 为 10,我可以通过没有的视图将一行插入到 EMP 表中DEPTNO 共 10 个。

    SQL> create or replace view emp_view
      2  as
      3  select *
      4    from emp
      5   where deptno=10;
    
    View created.
    
    SQL> insert into emp_view( empno, ename, job )
      2    values( 7623, 'PAV', 'Dev' );
    
    1 row created.
    

    所以如果我查询视图,我将看不到该行

    SQL> select empno, ename, job
      2    from emp_view;
    
         EMPNO ENAME      JOB
    ---------- ---------- ---------
          7782 CLARK      MANAGER
          7839 KING       PRESIDENT
          7934 MILLER     CLERK
    

    但我会在基础表中看到它

      1  select empno, ename, job
      2*   from emp
    SQL> /
    
         EMPNO ENAME      JOB
    ---------- ---------- ---------
          7623 PAV        Dev
          7369 smith      CLERK
          7499 ALLEN      SALESMAN
          7521 WARD       SALESMAN
          7566 JONES      MANAGER
          7654 MARTIN     SALESMAN
          7698 BLAKE      MANAGER
          7782 CLARK      MANAGER
          7788 SCOTT      ANALYST
          7839 KING       PRESIDENT
          7844 TURNER     SALESMAN
          7876 ADAMS      CLERK
          7900 SM0        CLERK
          7902 FORD       ANALYST
          7934 MILLER     CLERK
          1234 FOO
    
    16 rows selected.
    

    【讨论】:

    • 是的,他确实提供了一个完全限定的名称,但他没有提交交易!谢谢。它现在可以工作了:) +1 ...我仍然想知道您的意思 “您确定要插入的行符合视图的标准吗?”跨度>
    猜你喜欢
    • 2017-07-06
    • 2010-10-20
    • 2010-11-01
    • 2014-08-10
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多