儲存過程訪問其他使用者的表的問題
今天寫了一個儲存過程,需要透過dblink把其他使用者下面的表的資料增量copy到目標表中,結果訪問其他系統的表的時候,在儲存過程中一直有問題,在Stack Overflow中找到了答案。
In stored procedures, functions, and definers-rights packages, roles (such as
SELECT_CATALOG_ROLE
) are disabled. Therefore, such a PL/SQL program can only fetch metadata for objects in its own schema . If you want to write a PL/SQL program that fetches metadata for objects in a different schema (based on the invoker's possession ofSELECT_CATALOG_ROLE
), you must make the program invokers-rights.
To do this, you must add
authid
to your procedure.
create procedure tests authid CURRENT_USER is l_foo clob;beginselectregexp_replace( dbms_metadata.get_ddl('USER', 'SCOTT', null) || dbms_metadata.GET_GRANTED_DDL ('SYSTEM_GRANT', 'SCOTT') || dbms_metadata.GET_GRANTED_DDL ('OBJECT_GRANT', 'SCOTT') || dbms_metadata.GET_GRANTED_DDL ('ROLE_GRANT', 'SCOTT'),'"' || chr(10), '";' || chr(10)) into l_foo from dual;end;/SQL> EXEC tests PL/SQL procedure successfully completed
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/725820/viewspace-2158185/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於儲存過程中不能操作其他使用者表資料的問題解決儲存過程
- 儲存過程問題。。儲存過程
- 一個儲存過程的問題!儲存過程
- 呼叫者儲存過程訪問許可權問題儲存過程訪問許可權
- mysql多次呼叫儲存過程的問題MySql儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- Oracle在儲存過程中呼叫其他使用者的表授權Oracle儲存過程
- MySQL儲存過程的許可權問題MySql儲存過程
- Hibernate呼叫oracle儲存過程的問題Oracle儲存過程
- 關於Oracle建立儲存過程時,訪問不同Schema下的表報錯:ORA-00942的問題Oracle儲存過程
- 儲存過程單引號問題儲存過程
- 儲存過程呼叫其他模式的儲存過程需要注意的地方儲存過程模式
- 【PRODUCE】Oracle 通過儲存過程限制使用者訪問表資料Oracle儲存過程
- ORACLE中儲存過程的許可權問題Oracle儲存過程
- MySQL儲存過程中的sql_mode問題MySql儲存過程
- java儲存過程呼叫servlet的授權問題Java儲存過程Servlet
- SQL Server 資料訪問策略:儲存過程QCSQLServer儲存過程
- 【PRODUCE】Oracle 通過儲存過程限制使用者訪問表資料(二)Oracle儲存過程
- 解決儲存過程擷取錯誤的問題儲存過程
- oracle儲存過程!解決網友問題Oracle儲存過程
- 偶發的儲存過程呼叫效能問題的一次調優過程儲存過程
- 使用MyGeneration生成儲存過程和資料訪問層程式碼儲存過程
- 關於檢視和儲存過程的許可權問題探究儲存過程
- 儲存過程中使用Dbms_Scheduler包的許可權問題儲存過程
- 儲存過程輸入引數型別定義引起的問題儲存過程型別
- 請大家幫忙,關於儲存過程分頁的問題...謝謝儲存過程
- js中的儲存問題JS
- orbeon form 的架構簡介 - 如何訪問使用者通過 form 儲存的資料ORBORM架構
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- 遷移表結構時儲存空間過大問題
- db2刪除已經儲存的表儲存過程DB2儲存過程
- ORA-20003 , procedure儲存過程失效問題儲存過程
- 在儲存過程中使用EXECUTE IMMEDIATE報許可權問題儲存過程
- oracle 儲存過程不能編譯-- (編譯的同時正在訪問所導致的) [轉載]Oracle儲存過程編譯
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- DataFrame儲存為hive表時的換行符問題Hive
- 儲存過程獲取表被引用的資訊儲存過程
- oracle的儲存過程Oracle儲存過程