数据安全
325
有可能做到的事,利用开发工作之便,通过编程手
段获得系统登录数据库的用户和密码,这种情况是
存在的;另外,用户密码信息也有可能在不经意间
泄露。因此,数据库账号密码的泄露有可能是多渠
道、难于防范的。对于这个问题,通常的做法是每
隔一段时间修改一次数据库用户密码,但是即使修
改密码之后,有些开发人员要重新获取新的用户密
码也不是难事,账号密码也有可能再次泄露,这样
可以说是短期的解决方法,并不能根本解决问题。
对于这样的问题有什么彻底的解决方法吗?
从上述数据库触发器的特性可知,触发器是可
以在事件发生之时触发,并可以中断正在发生的事
件。据此,可以利用触发器的这个特性实现监控用
户连接数据库的行为,当用户登录连接数据库这个
事件发生时,使触发器自动运行登录数据库事件的
检测指令SQL,通过指令判断登录IP地址或用户信息
等条件进行用户合法性判断,对不符合条件的登录
用户定性为非法登录,并直接断开登录。同时记录
非法登录连接用户的信息,如机器名、IP地址、操
作时间等。对非法登录行为实现事前制止登录操作,
事中记录操作痕迹,事后通过登录记录的痕迹追溯
原因或责任。
4.
4. 数据库触发器在数据安全方面的应用实现
针对上述所提到的问题的解决方案,以下列举
一个例子进行说明。为了方便说明问题,以下例子
约定数据库为Oracle11G,系统架构为当前应用最普
及的B/S三层架构,应用服务器IP地址为
192.168.1.100,
操作系统不限。
下面所列举的例子,
将利用“登录触发器”和“异常事件触发器”结合,
实现功能为:1)防止一切未许可的非法IP登录数据
库,数据库自带的两个管理用户SYS和SYSTEM登录例
外;2.不影响应用系统的正常登录使用,3)当非法
登录时,记录非法登录行为的痕迹。以下为实现功
能的步骤:
步骤一:操作用户的选择,使用数据库最高权
限的SYS用户登录数据库操作,创建登录触发的触发
器,必须使用SYS用户,其它用户权限不足,不能创
建登录触发器,并且SYS用户创建的对象安全性更
高,其它用户都无权限进行破坏性修改或干预。
步骤二:创建“非法登录日志表”
,用来记录非
法登录的信息,表结构如下图表1所示:
图表1 非法登录日志表
步骤三:创建登录触发器,事件为登录连接数
据库时。合法性判断为允许用户SYS和SYSTEM连接,
允许通过应用服务器连接,其它用户若不是通过应
用服务器连接则定义为非法登录。当非法登录时中
打分:
0 星