今天学习的时候突然发现 在role_sys_privs视图中查不到 connect 和 resoure 两个角色 的信息 .
-------------------------------------------------------------------------------------------
SQL> connect system/moon123@moon
已连接。
SQL> desc role_sys_privs
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ------------
 ROLE                                      NOT NULL VARCHAR2(30)
 PRIVILEGE                                 NOT NULL VARCHAR2(40)
 ADMIN_OPTION                                       VARCHAR2(3)SQL> column role format a20
SQL> column privilege format a20
SQL> select *
  2  from role_sys_privs
  3  where role=upper('connect');未选定行SQL> select *
  2  from role_sys_privs
  3  where role=upper('resource');    -------------role='CONNECT'; 也未选中;未选定行
----------------------------------------------------------------------------  不晓得为什么
Google了一下 发现cadn中高手的空间中一般我们都是给普通用户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 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/inthirties/archive/2009/08/03/4405639.aspx结果却成功了. --------------不明白为什么????????????????????? 
我的数据块版本是
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production但是创建了一个新的用户
create user aa identified by w1;
grant connect to aa;----------------------成功执行
grant resource to aa; -----------------成功执行想起以前看过的说 静态数据字典视图和动态数据字典视图的区别
v$开头的动态数据字典视图 当数据库的对象信息进行更新时,这类视图立即更新 
而dba_*  all_*  user_* 开头得静态视图 则不会立即更新  ---------------------请问问者对么??
如果对的  那么如何更新这类视图,
如果不对那是什么??
那role_sys_privs , 还有role_session 之类的视图 属于那类视图??上述问题又怎么看??

解决方案 »

  1.   

    select privilege from dba_sys_privs;
      

  2.   

    select grantee from dba_sys_privs where grantee='CONNECT';  你就这看到了,总之
      

  3.   

    SQL> conn / as sysdba;
    已连接。
    SQL> show parameter background_dest
    SQL> show parameter background_duNAME                                 TYPE        VALUE
    ------------------------------------ ----------- -----------------------------
    background_dump_dest                 string      G:\ORACLE\PRODUCT\10.1.0\ADMI
                                                     \ORCLU\BDUMP
    SQL> desc role_sys_privs
     名称                                      是否为空? 类型
     ----------------------------------------- -------- -------------------------- ROLE                                      NOT NULL VARCHAR2(30)
     PRIVILEGE                                 NOT NULL VARCHAR2(40)
     ADMIN_OPTION                                       VARCHAR2(3)
    SQL>select * from role_sys_privs where role=upper('connect');ROLE                           PRIVILEGE                                ADM
    ------------------------------ ---------------------------------------- ---
    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行。SQL> ed
    已写入 file afiedt.buf  1* select * from role_sys_privs where role=upper('resource')
    SQL> /ROLE                           PRIVILEGE                                ADM
    ------------------------------ ---------------------------------------- ---
    RESOURCE                       CREATE TYPE                              NO
    RESOURCE                       CREATE TABLE                             NO
    RESOURCE                       CREATE CLUSTER                           NO
    RESOURCE                       CREATE TRIGGER                           NO
    RESOURCE                       CREATE OPERATOR                          NO
    RESOURCE                       CREATE SEQUENCE                          NO
    RESOURCE                       CREATE INDEXTYPE                         NO
    RESOURCE                       CREATE PROCEDURE                         NO已选择8行。
    你要以dba的身份登录oracle,才有权限查看role_sys_privs数据字典里的东东。