管理外部程序的流程
本部分包含:
- 關于外部程序
- DBA任務來啟用外部過程調用
關于外部程序
外部程序是用C,C ++,Java或其他語言編寫的程序,編譯并存儲在數據庫之外,然后由用戶會話調用。例如,PL / SQL程序單元可以調用執行特殊用途處理所需的一個或多個C例程。
這些可調用的例程存儲在動態鏈接庫(DLL)中,或者在Java類方法的情況下存儲在libunit中,并且使用基本語言進行注冊。 Oracle數據庫提供了一個特殊用途界面,即調用規范(調用規范),使用戶可以用其他語言調用外部過程。
當用戶會話調用外部過程時,數據庫會啟動數據庫主機上的外部過程代理。代理的默認名稱是extproc。每個會話都有自己的專用代理。當會話終止時,數據庫終止其代理。
用戶應用程序將外部過程代理傳遞給DLL或libunit的名稱,外部過程的名稱以及任何相關參數。然后,外部過程代理加載DLL或libunit,運行外部過程,并將外部過程返回的任何值傳回應用程序。
Oracle數據庫高級應用程序開發人員指南“中有關外部過程的信息
?
DBA任務來啟用外部過程調用
啟用外部過程調用可能涉及以下DBA任務:
- 配置偵聽器以啟動extproc代理
默認情況下,數據庫啟動extproc進程。在以下情況下,您必須更改此默認配置,以便偵聽器啟動extproc進程:
。你想使用多線程的extproc代理
。數據庫在Windows上以共享服務器模式運行
。LIBRARY規范中的AGENT子句或PROCEDURE或FUNCTION規范中的AGENT IN子句將外部過程重定向到不同的extproc代理
有關更改默認配置的說明,請參見“Oracle數據庫高級應用程序開發人員指南”的“使用多種編程語言開發應用程序”一章中標題為“設置環境”的小節。 - 管理庫或授予與管理庫有關的特權
數據庫要求通過名為庫的模式對象訪問DLL。出于安全目的,默認情況下,只有具有DBA角色的用戶才能創建和管理庫。因此,您可能會被要求:
。使用CREATE LIBRARY語句來創建開發人員需要的庫對象。
。將以下權限授予開發人員:CREATE LIBRARY,CREATE ANY LIBRARY,ALTER ANTER LIBRARY,EXECUTE ANY LIBRARY,and EXECUTE ON library_name。
只能將這些特權明確授予受信任的用戶,而不能授予PUBLIC角色。如果您打算創建PL / SQL接口到庫,那么只需授予PL / SQL接口的EXECUTE特權。不要在底層庫上授予EXECUTE。您必須具有庫的EXECUTE對象特權才能創建PL / SQL接口。但是,用戶在他們自己的模式中自動擁有此權限。很少需要顯式授予庫上的EXECUTE對象權限。
?Oracle數據庫PL / SQL語言參考了解有關CREATE LIBRARY語句的信息
?
參考資料
https://docs.oracle.com/cd/E11882_01/server.112/e25494/manproc.htm#ADMIN00501
轉載于:https://www.cnblogs.com/ZeroTiny/p/9046304.html
總結
- 上一篇: 《Java技术》第一次作业
- 下一篇: [BZOJ1834][ZJOI2010]