转载:http://blog.chinaunix.net/uid-23284114-id-3042847.html
前段时间,在oracle中新建了一个用户,给了connect和resource权限。但是开发人员突然说不能创建view,觉得不打应该啊,记得connect应该包括create view权限。通过检查,发现我的记忆是错误的。
数据库版本
- SQL> select version from v$instance;
- VERSION
- -----------------
- 11.1.0.6.0
用新用户登录,查具体有哪些权限
- SQL> conn newuser/pass
- SQL> select * from session_privs;
- PRIVILEGE
- --------------------------------------------------------------------------------
- CREATE SESSION
- UNLIMITED TABLESPACE
- CREATE TABLE
- CREATE CLUSTER
- CREATE SEQUENCE
- CREATE PROCEDURE
- CREATE TRIGGER
- CREATE TYPE
- CREATE OPERATOR
- CREATE INDEXTYPE
从上面的结果可以看到,还真没有create view权限。
那么connect角色到底有哪些权限呢?
- SQL> select * from dba_sys_privs where GRANTEE='CONNECT';
- GRANTEE PRIVILEGE ADM
- ------------------------------ ---------------------------------------- ---
- CONNECT CREATE SESSION NO
结果反馈,connect角色只有一个create session权限!看来以前的认识是错误的!
继续查,看看resource有哪些权限
- SQL> select * from dba_sys_privs where GRANTEE='RESOURCE';
- GRANTEE PRIVILEGE ADM
- ------------------------------ ---------------------------------------- ---
- RESOURCE CREATE TRIGGER NO
- RESOURCE CREATE SEQUENCE NO
- RESOURCE CREATE TYPE NO
- RESOURCE CREATE PROCEDURE NO
- RESOURCE CREATE CLUSTER NO
- RESOURCE CREATE OPERATOR NO
- RESOURCE CREATE INDEXTYPE NO
- RESOURCE CREATE TABLE NO
-----------
最后,给新建用户赋予create view权限,解决问题。