你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
nccloud
-- 建日志表 CREATE TABLE user_login_log ( log_id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, username VARCHAR2(30), ip_address VARCHAR2(40), login_time DATE DEFAULT SYSDATE, terminal VARCHAR2(30), os_user VARCHAR2(30), module VARCHAR2(48) );
CREATE OR REPLACE TRIGGER trg_log_user_login AFTER LOGON ON DATABASE DECLARE v_ip VARCHAR2(40); BEGIN -- 获取客户端IP SELECT SYS_CONTEXT('USERENV', 'IP_ADDRESS') INTO v_ip FROM DUAL; -- 插入日志 INSERT INTO user_login_log ( username, ip_address, login_time, terminal, os_user, module ) VALUES ( SYS_CONTEXT('USERENV', 'SESSION_USER'), v_ip, SYSDATE, SYS_CONTEXT('USERENV', 'TERMINAL'), SYS_CONTEXT('USERENV', 'OS_USER'), SYS_CONTEXT('USERENV', 'MODULE') ); EXCEPTION WHEN OTHERS THEN -- 触发器不能报错,否则用户登不上库 NULL; END; /
-- 查看所有登录IP SELECT username, ip_address, login_time FROM user_login_log ORDER BY login_time DESC; -- 按用户统计登录过哪些IP SELECT username, ip_address, COUNT(*) AS login_count FROM user_login_log GROUP BY username, ip_address ORDER BY username;
要回复问题请先登录或注册
1 个回复
nccloud
1. 先建一张登录日志表
2. 创建登录触发器(自动记录 IP)
3. 查看登录 IP 列表