楼主在用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 权限到底是什么?
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 权限到底是什么?
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
还是权限的问题吧,是不是跨用户了?
session这个权限。
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查询是有结果的