在oracle数据库中,我创建一个用户之后,给其授权:grant connect,resource to username;为什么我创建视图的时候提示权限不够?不是说connect中包含了创建视图的权限吗?求详细解释。
------解决方案--------------------
------解决方案--------------------
- SQL code
SQL> select * from role_sys_privs where role='CONNECT' ;ROLE PRIVILEGE ADM------------------------------ ---------------------------------------- ---CONNECT CREATE SESSION NOSQL> select * from role_sys_privs where role='RESOURCE' ;ROLE PRIVILEGE ADM------------------------------ ---------------------------------------- ---RESOURCE CREATE SEQUENCE NORESOURCE CREATE TRIGGER NORESOURCE CREATE CLUSTER NORESOURCE CREATE PROCEDURE NORESOURCE CREATE TYPE NORESOURCE CREATE OPERATOR NORESOURCE CREATE TABLE NORESOURCE CREATE INDEXTYPE NO
------解决方案--------------------
resource角色不包含create view的系统权限了。
以下是检查授予角色的系统权限
SQL> select * from role_sys_privs;
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TYPE NO
CONNECT CREATE SESSION NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO
已选择9行。
可以看到RESOURCE中没有‘create view’权限
如何获得‘create view’权限呢?
1. 直接给用户授予‘create view’权限:
例如有一个test用户需要创建视图,在system用户下授予权限。
sql> grant create view to test;
2. 给角色赋予‘create view’权限:
sql> grant create view to RESOURCE;