oracle里没有现成的记录,但可以用触发器实现监控登录和退出的目标。 下面是我自己在用的一段程序,实现对登录和退出的监控表名:PUB_DBA_LOGIN 说明: 建表: CREATE TABLE PUB_DBA_LOGIN( 数据库 VARCHAR2(15) NOT NULL, 实例名 VARCHAR2(15) , 事件类型 VARCHAR2(15) , 事件时间 DATE , 用户名 VARCHAR2(20) , IP地址 VARCHAR2(20) , 主机名 VARCHAR2(30) )相关触发器: -- LOGIN日志 CREATE OR REPLACE TRIGGER TRIG_PUB_DBA_LOGIN1 AFTER LOGON ON DATABASE BEGIN IF ora_login_user <> ‘SYSMAN’ THEN INSERT INTO PUB_DBA_LOGIN VALUES(ora_database_name,ora_instance_num,'logon',sysdate, ora_login_user,ora_client_ip_address,'?'); END IF; EXCEPTION WHEN OTHERS THEN NULL; END;-- LOGOUT日志 CREATE OR REPLACE TRIGGER TRIG_PUB_DBA_LOGIN2 BEFORE LOGOFF ON DATABASE BEGIN INSERT INTO PUB_DBA_LOGIN VALUES(ora_database_name,ora_instance_num,'logon',sysdate, ora_login_user,ora_client_ip_address,'?');
EXCEPTION WHEN OTHERS THEN NULL; END;注意:ip地址通常取不到值
下面是我自己在用的一段程序,实现对登录和退出的监控表名:PUB_DBA_LOGIN
说明:
建表:
CREATE TABLE PUB_DBA_LOGIN(
数据库 VARCHAR2(15) NOT NULL,
实例名 VARCHAR2(15) ,
事件类型 VARCHAR2(15) ,
事件时间 DATE ,
用户名 VARCHAR2(20) ,
IP地址 VARCHAR2(20) ,
主机名 VARCHAR2(30)
)相关触发器:
-- LOGIN日志
CREATE OR REPLACE TRIGGER TRIG_PUB_DBA_LOGIN1
AFTER LOGON ON DATABASE
BEGIN
IF ora_login_user <> ‘SYSMAN’ THEN
INSERT INTO PUB_DBA_LOGIN
VALUES(ora_database_name,ora_instance_num,'logon',sysdate,
ora_login_user,ora_client_ip_address,'?');
END IF;
EXCEPTION
WHEN OTHERS THEN NULL;
END;-- LOGOUT日志
CREATE OR REPLACE TRIGGER TRIG_PUB_DBA_LOGIN2
BEFORE LOGOFF ON DATABASE
BEGIN
INSERT INTO PUB_DBA_LOGIN
VALUES(ora_database_name,ora_instance_num,'logon',sysdate,
ora_login_user,ora_client_ip_address,'?');
EXCEPTION
WHEN OTHERS THEN NULL;
END;注意:ip地址通常取不到值