3
Oracle中的一個缺陷是,有時如果您在SQLplus中運行查詢但您不能在運行從存儲過程查詢。爲了從存儲過程運行查詢,您需要直接授予對象,而不是通過角色獲得的授予。如何確定是否直接或通過角色獲得選擇授予
如果我在all_tables視圖中看到一個表,我怎麼能知道是否由於直接授予或角色授予而能夠查看此表?
Oracle中的一個缺陷是,有時如果您在SQLplus中運行查詢但您不能在運行從存儲過程查詢。爲了從存儲過程運行查詢,您需要直接授予對象,而不是通過角色獲得的授予。如何確定是否直接或通過角色獲得選擇授予
如果我在all_tables視圖中看到一個表,我怎麼能知道是否由於直接授予或角色授予而能夠查看此表?
看ALL_TAB_PRIVS:
select grantee from all_tab_privs
where table_schema = 'SCOTT' and table_name='EMP'
and privilege = 'SELECT';
這說明所有受資助,無論是角色或用戶。
一種方法,看看究竟什麼一個程序將看到的是發出命令:
SET ROLE none
它禁用當前會話的所有角色。
這似乎是我正在尋找。它只顯示那些我有選擇權限的表。 謝謝 – Rene 2010-01-19 14:33:35