ORACLE的CONNECT和RESOURCE角色权限

最近在处理数据库的用户权限问题,以前惯性思惟,以为给用户受权RESOURCE权限以后,用户的通常权限都会有,等到发现用户有RESOURCE角色,却没有建立视图的权限以后,才发现这部分仍是只知其一;不知其二啊,因此此处整理了一下相关的CONNECT角色和RESOURCE角色的内容。数据库

通常状况下,在新建数据库用户后,都会习惯性的给用户受权CONNECT角色和RESOURCE角色:工具

GRANT connect,resource TO 用户;

可是拥有这两个角色的用户都拥有什么权限呢?可使用以下语句查看一下:spa

SELECT * FROM dba_sys_privs WHERE grantee IN ('RESOURCE', 'CONNECT') ORDER BY 1;

从查询结果能够看到:code

image

CONNECT角色:仅具备建立SESSION的权限对象

RESOURCE角色:仅具备建立CLUSTER,INDEXTYPE,OPERATOR,PROCEDEURE,SEQUENCE,TABLE,TRIGGER,TYPE的权限。同时,当把ORACLE resource角色授予一个user的时候,不但会授予ORACLE resource角色自己的权限,并且还有unlimited tablespace权限,可是,当把resource授予一个role时,就不会授予unlimited tablespace权限。blog

确实没有建立视图的权限,由此看来若是须要建立视图权限,只能单独受权:get

GRANT CREATE VIEW TO 用户;

 

那么,一个用户,若是查看他拥有什么权限呢?it

方法一:PLSQL Developer工具table

在PLSQL Developer中能够很方便的查看用户的各类类型权限(包括对象权限,角色权限,系统权限),以下图:class

image

 

方法二:SQL查询语句

查询对象权限:

SELECT * FROM dba_tab_privs a WHERE a.grantee = '用户名';

 

查询角色权限:

SELECT * FROM dba_role_privs a WHERE a.GRANTEE = '用户名';

 

查询系统权限:

SELECT * FROM dba_sys_privs a WHERE a.GRANTEE = '用户名';
相关文章
相关标签/搜索