2011-01-13 52 views
1

我在Oracle中創建數據庫中的一個角色,我能夠設置在sqlplus角色到用戶,如下:集DB角色

SQL> set role all_temper_role; 

Role set. 

但我需要設置在Oracle報告這個角色和我使用:

HOLD_CMD := 'ALL_TEMPer_ROLE'; 
DBMS_SESSION.SET_ROLE(HOLD_CMD); 

但是這不起作用。請告訴我如何在oracle報告程序中設置這個角色。

回答

0

你可能想使你的角色名大寫,除非你知道你用小寫字符創造了它一個事實:

HOLD_CMD := 'ALL_TEMPER_ROLE'; 
DBMS_SESSION.SET_ROLE(HOLD_CMD); 
0

Oracle提供了一個更好的方式,通過實現這個內置的行級安全(RLS)機制(也稱爲細粒度訪問控制或FGAC)。我們已經爲我們的報告完成了FGAC。

根據以前的文件,

1)增加了一個用戶參數P_CONC_REQUEST_ID 2)中加入 「srw.user_exit( 'FND SRWINIT');」到BeforeReport觸發器 3)添加「srw.user_exit('FND SRWEXIT');」到AfterReport觸發器

我們希望它可以幫助你。

0

Property Inspector(在報告級別)包含一個「角色名稱」屬性。經驗告訴我,這是最好的解決方案。