这个blog文还是源自于一个提问,不过问题提的很简单,感觉到用户对connect这个角色权限不理解,所以引申出了这篇文章

 

一般我们都是给普通用户connect,resource这两种role的身份,connect和resource是oracle里的两种role,这两种role聚合了一定的权限。所以赋予了这样的role,你就拥有这样的权限了。 

你可以通过 
role_sys_prvis这个数据字典表,知道具体的role的系统权限,注意这里我说到的是系统权限,在ORacle里权限有几种系统权限,角色权限,对象权限,你可以详细看看这里的知识了,或者等待我的blob文来介绍 

这里我们可以先示范一下查查这个connect的角色具有哪些权限通过role_sys_privs表 
如下 
SQL> select * from role_sys_privs where role='CONNECT'; 

ROLE                          PRIVILEGE                                ADMIN_OPTION 
------------------------------ ---------------------------------------- ------------ 
CONNECT                        CREATE VIEW                              NO 
CONNECT                        CREATE TABLE                            NO 
CONNECT                        ALTER SESSION                            NO 
CONNECT                        CREATE CLUSTER                          NO 
CONNECT                        CREATE SESSION                          NO 
CONNECT                        CREATE SYNONYM                          NO 
CONNECT                        CREATE SEQUENCE                          NO 
CONNECT                        CREATE DATABASE LINK                    NO 

8 rows selected 

通过上面我们可以看到,如果你给一个用户一个connect的权限的话,实际上这个用户就具有了 
CREATE VIEW 
CREATE TABLE 
ALTER SESSION 
CREATE CLUSTER 
CREATE SESSION 
CREATE SYNONYM 
CREATE SEQUENCE 
CREATE DATABASE LINK 
这样一些权限了。 

你有兴趣可以把role=‘CONNECT’换成RESOURCE,看看resource具有哪些系统权限。 

 

以后有时间将特地介绍一下有关oralce里的各种权限,角色权限,系统权限,对象权限,身份权限。