日期:2014-05-17  浏览次数:20823 次

oracle授权问题
在oracle数据库中,我创建一个用户之后,给其授权:grant connect,resource to username;为什么我创建视图的时候提示权限不够?不是说connect中包含了创建视图的权限吗?求详细解释。

------解决方案--------------------
探讨
“封装在执行体内的权限”是什么意思?可不可以解释清楚一点。还有即便给用户授DBA权限还是有时候提示权限不足,也是一样的道理吗?

------解决方案--------------------
SQL code

SQL> select * from role_sys_privs where role='CONNECT' ;

ROLE                           PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
CONNECT                        CREATE SESSION                           NO

SQL> select * from role_sys_privs where role='RESOURCE' ;

ROLE                           PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
RESOURCE                       CREATE SEQUENCE                          NO
RESOURCE                       CREATE TRIGGER                           NO
RESOURCE                       CREATE CLUSTER                           NO
RESOURCE                       CREATE PROCEDURE                         NO
RESOURCE                       CREATE TYPE                              NO
RESOURCE                       CREATE OPERATOR                          NO
RESOURCE                       CREATE TABLE                             NO
RESOURCE                       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;