楼主在用Imp导入数据到oracle数据库后,发现所有的视图都没能导入,查看日志,原来是权限问题,应该是没有create view的权限。当时给导入用户赋予的权限是connect和resources,google查找相关资料,在一篇博客中看到connect的权限为
       ALTER SESSION --修改会话
        CREATE CLUSTER --建立聚簇
        CREATE DATABASE LINK --建立数据库链接
        CREATE SEQUENCE --建立序列
        CREATE SESSION --建立会话
        CREATE SYNONYM --建立同义词
        CREATE VIEW --建立视图
竟然有create view的权限。于是在数据库通过select * from role_role_privs;查找角色权限,发现connect只有create session权限,继续google,在https://www.safaribooksonline.com/library/view/oracle-security/1565924509/ch05s02.html找到相关说明,在oracle6之后,connect 新增了上面这些权限。而这与楼主在数据库查找的不相同,所以感到困惑,想请教一下connect 权限到底是什么?  

解决方案 »

  1.   

            ALTER SESSION --修改会话
            CREATE CLUSTER --建立聚簇
            CREATE DATABASE LINK --建立数据库链接
            CREATE SEQUENCE --建立序列
            CREATE SESSION --建立会话
            CREATE SYNONYM --建立同义词
            CREATE VIEW --建立视图
    还是权限的问题吧,是不是跨用户了?
      

  2.   

    问题已解决,在stackoverfolw上找到一个回答http://stackoverflow.com/questions/27100363/what-is-the-significance-of-connect-role-in-oracle,在oracle6中新增了connect的这些权限,而在oracle10g又重新做了更改,对新增的权限进行了移除,只保留了create
    session这个权限。
      

  3.   


    select * from dba_sys_privs where grantee = 'CONNECT'
      

  4.   

    select * from dba_sys_privs where grantee='connect';
    GRANTEE                        PRIVILEGE                                ADMIN_OPTION
    ------------------------------ ---------------------------------------- ------------SQL> select * from role_sys_privs where role='resource';
    ROLE                           PRIVILEGE                                ADMIN_OPTION
    ------------------------------ ---------------------------------------- ------------
    实际查询结果是这样,不知道为什么,而通过select * from dba_sys_privs查询是有结果的