賦予給使用者的物件,為啥就是看不到!!

kewin發表於2010-07-14
在一個環境中遇到一個角色的問題,這個問題的產生有些奇怪。
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部落格 ” ,連結:http://blog.itpub.net/40239/viewspace-668000/,如需轉載,請註明出處,否則將追究法律責任。

相關文章