一个记录客户端session ip的触发器
作者 cyr1974
CREATE OR REPLACE TRIGGER record_ip_logon_trigger
AFTER LOGON ON DATABASE
DECLARE
v_user_identifier VARCHAR2 (64);
BEGIN
SELECT SYS_CONTEXT ('USERENV', 'OS_USER')
|| ':'
|| SYS_CONTEXT ('USERENV', 'IP_ADDRESS')
INTO v_user_identifier
FROM DUAL;
AFTER LOGON ON DATABASE
DECLARE
v_user_identifier VARCHAR2 (64);
BEGIN
SELECT SYS_CONTEXT ('USERENV', 'OS_USER')
|| ':'
|| SYS_CONTEXT ('USERENV', 'IP_ADDRESS')
INTO v_user_identifier
FROM DUAL;
DBMS_SESSION.set_identifier (v_user_identifier);
END;
/
这样在v$session里的client_identifier列里,可以直接看到session ip地址,以便我们在作进一步处理