当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
2015年Oracle认证考试辅导:数据库用户避开了LOGONAUDIT触发器
发布时间:2010/3/13 11:31:40 来源:城市学习网 编辑:MOON
  相信很多DBA会在系统中来个LOGON_AUDIT,目的就是避免某些未经过授权的机器登陆了数据库。这事在我们这也有.为了防止从办公网络试用生产账号登陆生产主机非法获取用户,我们写了个LOGON_AUDIT的触发器,如下:CREATE OR REPLACE TRIGGER sys.LOGON_AUDIT
  AFTER LOGON ON DATABASE
  declare
  lv_user varchar2.
  lv_host varchar2.
  lv_schema varchar2.
  lv_suser varchar2.
  lv_ip varchar2.
  BEGIN
  0select sys_context,
  sys_context,
  sys_context,
  sys_context,
  sys_context
  into lv_host, lv_user, lv_schema, lv_suser, lv_ip
  from dual.
  if lv_suser = ‘USERNAME’ then
  if substr
  or lv_ip is null
  then
  null .
  else
  RAISE_APPLICATION_ERROR.
  end if.
  end if.
  END.测试的时候,通过,可是在正式使用中,却发现有的生产主机没有办法拒绝办公网络的登陆.那就查问题呗.查来查去,发现似乎应该是权限的问题.在检查,发现凡是不能拒绝办公网络登陆的数据库用户有一个IMP_FULL_DATABASE的角色.这个角色的权限非常的高,仔细检查这个角色的权限,发现其中有一个权限为:ADMINISTER DATABASE TRIGGER,将这个权限从用户上revoke后,登陆就会被拒绝,如果将这个权限授予用户,就会避开系统的LOGON_AUDIT触发器,能继续登陆,问题是找到了,啥时候能重新授权列,只能等待,慢慢的等到系统上线或者例行维护的时候了,这个权限的重新授予风险还是很高的.不过问题找到了就ok.
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved