开发环境需要记录登录Oracle服务器的帐号状况,包括登录用户名,登录是否成功,登录时间,远程主机名称,远程IP地址等信息。
首先创建USER_LOGIN_AUDIT表,用于保存登录日志信息
create table USER_LOGIN_AUDIT
(
SESSION_ID NUMBER(10),
SESSION_USER VARCHAR2(30),
HOST VARCHAR2(30),
IP VARCHAR2(30),
CLIENT VARCHAR2(50),
OS_USER VARCHAR2(50),
STATUS CHAR(1),
LOGIN_TIME DATE,
LOGOUT_TIME DATE
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
然后创建登录触发器,记录用户登录事件
create or replace trigger TRI_USER_LOGIN_AUDIT
after LOGON ON DATABASE
begin
if UPPER(sys_context('USERENV', 'SESSION_USER')) <> 'DBSNMP' and
sys_context('USEREN