我在一个数据库创建了两个用户一个dba_user,一个是connect_user,connnect_user有了create any table和create any view两个权限,并赋于dba_user里一些表的查询权限,现在我想在connect_user 里创建视图
create view test_view_1
as 
select * from dba_user.table_name
这样就提示权限不足,请问一下,怎么才能在connect_user创建好视图

解决方案 »

  1.   

    可以不用分配表空间,如果不分配表空间,就用系统默认的表空间SQL> create user temp identified by temp;用户已创建SQL> grant create any table,create any view,create session to temp;授权成功。SQL> grant select any table to temp;授权成功。然后用temp用户登录sqlplus
    SQL> show user
    USER 为"TEMP"
    SQL> create view vie_temp
      2  as 
      3  select * from scott.emp;视图已建立。SQL> select * from vie_temp;     EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM
    ---------- ---------- --------- ---------- ---------- ---------- ----------
        DEPTNO
    ----------
          7369 SMITH      CLERK           7902 17-12月-80        800
            20      7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300
            30      7521 WARD       SALESMAN        7698 22-2月 -81       1250        500
    ..........................
    ..........以上说明了还要授权create session 的权限;
      

  2.   

    需要两种权限:创建视图的系统权限,对引用表的select对象权限。创建对象时,最好指定对象所属的方案 schema。
    create or replace view connect_user.test_view_1 
    as
    ... ...