--事件属性函数 --客户端的ip地址 select ora_client_ip_address from dual --当前数据库名 select ora_database_name from dual --登录用户名 select ora_login_user from dual --触发触发器的系统事件名ora_sysevent --ddl操作所对应的对象的所有者名ora_dict_obj_owner --ddl操作所对应的数据库对象名ora_dict_obj_name --ddl操作所对应的数据库对象的类型ora_dict_obj_type --事件触发器(未测试),事件触发器需特定用户才能创建 --数据库启动,关闭触发器 create or replace trigger tr_startupafter startup on databasebegin insert into event_table values(ora_sysevent,sysdate); end; / create or replace trigger tr_shutdownbefore shutdown on databasebegin insert into event_table values(ora_sysevent,sysdate); end; / --用户登录,退出触发器 create or replace trigger tr_logonafter logon on databasebegin insert into log_table values(ora_login_user,sysdate,ora_client_ip_address); end; / create or replace trigger tr_logoffbefore logoff on databasebegin insert into log_table values(ora_login_user,sysdate,ora_client_ip_address); end; / --建立ddl触发器 create or replace trigger tr_ddlafter ddl on scott.schemabegin insert into ddl_table values(ora_sysevent,ora_login_user,ora_dict_obj_owner, ora_dict_obj_name,ora_dict_obj_type,sysdate); end; /