在一个环境中遇到一个角色的问题,这个问题的产生有些奇怪。
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-
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/40239/viewspace-668000/
,如需转载,请注明出处,否则将追究法律责任。