2014-12-06 93 views
0

我創建了以下觸發器,但是我需要獲取用戶名和dml操作,該操作已登錄到應用程序中,而不是當前登錄到數據庫中的用戶使用觸發器審計oracle中的用戶日誌信息

CREATE OR REPLACE TRIGGER orders_after_delete 
AFTER update or delete 
ON orders 

FOR EACH ROW 
DECLARE 

v_username varchar2(10); 

BEGIN 

SELECT user INTO v_username 
FROM dual; 

INSERT INTO orders_audit 
VALUES 
(:old.order_id, 
:old.quantity, 
:old.cost_per_item, 
:old.total_cost, 
sysdate, 
v_username, 
:new.total_cost); 

END; 

有了這個問題,我得到了登錄數據庫的用戶的用戶名。我想讓用戶登錄我的用戶應用程序。

回答

0

INSERT聲明之前,使用IF-ELSE構造對用戶名進行檢查。區分application userschema owner的一種方法是驗證授予用戶的roles

可以查詢usernameprocessprogramv$session檢查用戶是否通過應用程序登錄。