赋予给用户的对象,为啥就是看不到!!

在一个环境中遇到一个角色的问题,这个问题的产生有些奇怪。
2010-7-14
给用户的个人帐号赋予角色,用户抱怨还是看不到对应的对象。
赋角色的语句为:
SQL> grant kinaxis_read to RUPAML;

Grant succeeded.

SQL> grant kinaxis_write to  RUPAML;

Grant succeeded.

与其他的语句别无二样。
可就是看不到。(想到一个咒语:你看我不到,你看我不到。)
相同的角色在其他帐号就没有问题,难道是用户RP问题。
SQL> select *  from DBA_ROLE_PRIVS where GRANTEE='RUPAML'

GRANTEE              GRANTED_ROLE         ADMIN_OPT DEFAULT_R
-------------------- -------------------- --------- ---------
RUPAML               DM_READ              NO        YES
RUPAML               HM_READ              NO        YES
RUPAML               MG_READ              NO        YES
RUPAML               DM_WRITE             NO        YES
RUPAML               MDM_READ             NO        YES
RUPAML               MDM_WRITE            NO        YES
RUPAML               KINAXIS_READ         NO        NO
RUPAML               KINAXIS_WRITE        NO        NO

8 rows selected.

嗯。为啥有问题的角色 DEFAULT_ROLE  值为NO??
问题就出在这里,不要搞封建迷信活动,凡事皆有原因。
DEFAULT_ROLE 指定了用户登录时的角色,如果为NO,那用户是不能看到角色涉及的对象。如果用户非想看,要经过验证;或者管理员显式的改为YES。
 
SQL> desc DBA_ROLE_PRIVS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 GRANTEE                                            VARCHAR2(30)
 GRANTED_ROLE                              NOT NULL VARCHAR2(30)
 ADMIN_OPTION                                       VARCHAR2(3)
 DEFAULT_ROLE                                       VARCHAR2(3)

更改的DEFAULT_ROLE 的语句:
SQL> alter user RUPAML default role all;

User altered.

检查结果:
SQL>  select *  from DBA_ROLE_PRIVS where GRANTEE='RUPAML';

GRANTEE              GRANTED_ROLE         ADMIN_OPT DEFAULT_R
-------------------- -------------------- --------- ---------
RUPAML               DM_READ              NO        YES
RUPAML               HM_READ              NO        YES
RUPAML               MG_READ              NO        YES
RUPAML               DM_WRITE             NO        YES
RUPAML               MDM_READ             NO        YES
RUPAML               MDM_WRITE            NO        YES
RUPAML               KINAXIS_READ         NO        YES
RUPAML               KINAXIS_WRITE        NO        YES

8 rows selected.


用户可以看到想看的内容。
-THE END-

请使用浏览器的分享功能分享到微信等