Oracle实现记录用户DDL行为操作的方法

--oracle 触发器脚本
--一、 限定仅能从指定服务器/工具连接
create or replace trigger logon_ip_module_control
  after logon on database
/*限制DATAFIX用户仅允许通过192.168.1.3的ip使用plsqldev.exe工具登录至数据库*/
declare
  v_ip      Varchar2(50);
  v_user    Varchar2(50);
  v_module  Varchar2(50);
  v_log     Varchar2(300);
  v_message Varchar2(300);
begin
  SELECT SYS_CONTEXT('USERENV', 'SESSION_USER'),
         SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
         SYS_CONTEXT('USERENV', 'MODULE')
    into v_user, v_ip, v_module
    from dual;
  if v_user = 'DATAFIX' THEN
    IF (v_ip = '192.168.1.3' and v_module = 'plsqldev.exe') THEN
      -- Access Gateway 
      null;
    else
      v_log := 'LOGON_IP_MODULE_CONTROL_TRIGGER -- User: ' || v_user ||
               ', IP: ' || v_ip || ', L

你可能感兴趣的:(Oracle,oracle,数据库,服务器)