目的是從Web應用程序向觸發器(如當前用戶標識)發送額外信息。由於使用了連接池,並且所有連接都使用相同的用戶標識,因此我如何傳遞原始Web用戶標識來觸發?這是一個基於Java的應用程序。如何發送參數以在Oracle中觸發
4
A
回答
5
如果您無法觸摸應用程序代碼,並且應用程序本身不會將此信息傳遞到數據庫,那麼您處於僵局。將信息提供給後端代碼的唯一方法是讓中間層通過它。
Oracle爲應用程序將信息從中間層傳遞到後端提供了多種方式,但應用程序必須建立以利用它們。例如,DBMS_APPLICATION_INFO
程序包有一個set_client_info
過程,允許中間層傳遞後端觸發器可以查詢的中間層用戶的名稱。如果您想要更通用的機制,也可以使用Oracle contexts。但是,這兩種方法都實際上要求編寫Java應用程序,以便在從連接池檢索連接時將此信息傳遞到後端。
1
即使使用ConnectionPool,也可以使用代理身份驗證來識別用戶。
一個例子:
[email protected]> @man proxy
[ P R O X Y A U T H E N T I C A T I O N ]
drop user application_user
drop user end_user
-- let's create the application user which all users
-- need to connect through.
-- This user is meant as the middle-tier-user in a
-- multi-tier setup.
create user application_user identified by application_user
-- create an end-user
create user end_user identified by end_user
quota unlimited on users
grant create session, create table to end_user
-- this is the clause to grant access to end_user.
alter user end_user grant connect through application_user
-- now, we can connect WITHOUT PASSWORD!
@connect application_user[end_user]/application_user
-- this should display "END_USER"
select user from dual
-- this should display "APPLICATION_USER"
column proxy_user format a30
select sys_context('userenv', 'proxy_user') proxy_user from dual
http://blogs.oracle.com/jheadstart/entry/using_proxy_authentication
相關問題
- 1. 如何在stateless4j觸發器中發送參數
- 2. 如何在oracle中創建觸發器?
- 3. 在php中發送參數來觸發頁面刷新1x
- 4. 如何在rails中發送參數?
- 5. 如何發送參數AsyncCompletedEventArgs
- 6. 如何發送參數?
- 7. 觸發器在Oracle
- 8. SQL觸發器在Oracle中
- 9. 在oracle中觸發事件
- 10. 觸發器在oracle中
- 11. 在Oracle中創建數據傳送觸發
- 12. Oracle觸發器
- 13. 如何在節點中發送參數以及POST http請求?
- 14. 如何更改Oracle中的觸發器?
- 15. 如何在C#中的timerTick事件中發送參數(參數)?
- 16. 發送參數
- 17. 發送參數
- 18. 如何在Oracle中開發after serverror觸發器?
- 19. 如果在觸發器中的Oracle SQL
- 20. Django的:如何在HtpResponseRedirect發送參數
- 21. ORACLE PLSQL函數/觸發器
- 22. 客戶如何在發佈請求中發送參數?
- 23. 如何在ASP.NET中發送dropdownlist selectedvalue作爲回發參數
- 24. 如何觸發派送?
- 25. 設置參數值後參數形式觸發oracle報告
- 26. 在更新觸發在oracle?
- 27. 獲取觸發Oracle觸發器的值
- 28. mysql觸發器到oracle觸發器
- 29. Oracle AFTER INSERT觸發器未觸發
- 30. AFNetworking在發送請求的JSON參數中發送數組
謝謝你,是set_client_info與當我使用一個用戶名,以連接到Oracle的工作? – Koptan 2011-12-14 08:04:40