CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

数据库用户避开了LOGON_AUDIT触发器

作者: David.Guo,  出处:IT专家网, 责任编辑: 李书琴, 
2008-04-14 09:54
  相信很多DBA会在系统中来个LOGON_AUDIT,目的就是避免某些未经过授权的机器登陆了数据库。

  相信很多DBA会在系统中来个LOGON_AUDIT,目的就是避免某些未经过授权的机器登陆了数据库。

  这事在我们这也有.为了防止从办公网络试用生产账号登陆生产主机非法获取用户信息(因为我们的生产账号是不作审计的,个人账号作审计,因此要避免生产账号从办公网络登陆主机),我们写了个LOGON_AUDIT的触发器,如下:

  CREATE OR REPLACE TRIGGER sys.LOGON_AUDIT
  AFTER LOGON ON DATABASE
  declare
  lv_user varchar2(100);
  lv_host varchar2(100);
  lv_schema varchar2(100);
  lv_suser varchar2(100);
  lv_ip varchar2(100);
  BEGIN
  select sys_context(‘USERENV’, ‘HOST’),
  sys_context(‘USERENV’, ‘CURRENT_USER’),
  sys_context(‘USERENV’, ‘CURRENT_SCHEMA’),
  sys_context(‘USERENV’, ‘SESSION_USER’),
  sys_context(‘USERENV’, ‘IP_ADDRESS’)
  into lv_host, lv_user, lv_schema, lv_suser, lv_ip
  from dual;
  if lv_suser = ‘USERNAME’ then
  if substr(lv_ip, 1,  in (‘xx.xx.xx’)
  or lv_ip is null
  then
  null ;
  else
  RAISE_APPLICATION_ERROR(-20001, ‘CONNECTIION REFUSED’||lv_ip);
  end if;
  end if;
  END;

  测试的时候,通过,可是在正式使用中,却发现有的生产主机没有办法拒绝办公网络的登陆.那就查问题呗.

  查来查去,发现似乎应该是权限的问题.在检查,发现凡是不能拒绝办公网络登陆的数据库用户有一个IMP_FULL_DATABASE的角色.这个角色的权限非常的高,仔细检查这个角色的权限,发现其中有一个权限为:ADMINISTER DATABASE TRIGGER,将这个权限从用户上revoke后,登陆就会被拒绝,如果将这个权限授予用户,就会避开系统的LOGON_AUDIT触发器,能继续登陆,问题是找到了,啥时候能重新授权列,只能等待,慢慢的等到系统上线或者例行维护的时候了,这个权限的重新授予风险还是很高的.不过问题找到了就ok.

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i