如何绕过触发器?

减肥啊啊啊啊啊 2014-12-12 02:07:53
大概讲下需求, 想DBA管理员在数据库客户端操作update和delete的时候产生日志记录,
于是想到了触发器,想用触发器来记录操作的数据update和delete
但程序项目又想不经过该触发器去直接update和delete 比如其他持久化或者jdbc链接绕过触发器来执行更新删除操作.(其实最后还是sql语句去执行....)
请问大体思路如何解决.或者说我想的开始就是个错误.


归纳下问题就是 在sql客户端执行的更新和删除要监听或者记录(比如数据库管理员乱改操作,或者偷摸操作)
而从程序走的就绕过该监听或者记录.
为的就是除了程序之外的操作都要记录(包括DBA去使用客户端工具去执行sql,而且这些内容其实不用dba去担心具体的内容数据..)
目的就是不让他们随意修改内容 并且记录
有点类似防篡改似的


先谢谢各位提出的建议了
...全文
298 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢上面各位给出的建议. 最后的解决方案是 建立一个触发器 当某一个表收到操作信息时就记录到某一日志表中,日志记录一些简单的信息 最后能找到人即可, 而程序运行的处理是将该触发器开启和关闭. 感觉这样好别扭.如果有好的解决方案欢迎留言
yuyeyi 2014-12-15
  • 打赏
  • 举报
回复
web端做日志,那个有问题就查日志,然后就扯皮。
  • 打赏
  • 举报
回复
虽然知道DBA就是拿个钥匙玩你家锁头 但是否有个可行的办法或者方案 来弥补.
huangdh12 2014-12-12
  • 打赏
  • 举报
回复
引用 1 楼 wildwave 的回复:
防火防盗防DBA 实际上,程序操作也只不过是封装了一个接口,与直接操作数据库并没有本质区别 而如果要篡改,DBA直接再操作日志表就ok了,除非是,一旦操作数据库,立刻发送邮件和短信,或者是将日志存在别的地方 而且日志想记录什么呢,只能记录操作时间和操作终端这类的信息,偶尔检查下这些,保留redo和archive日志,使用logminer分析就可以了
支持, 需要的只是增加校验机制而已。 没有办法完全防范。 因为哪怕日志记录,dba如果知道存储的地方的话,一样可以把记录删除 。
CT_LXL 2014-12-12
  • 打赏
  • 举报
回复
好比人家有你家的钥匙你要防他不拿你东西
bw555 2014-12-12
  • 打赏
  • 举报
回复
防火防盗防DBA,呵呵 数据库对dba来说就是透明的啊,你就算触发器实现了,他也能把触发器删掉,操作完再给你建上
卖水果的net 2014-12-12
  • 打赏
  • 举报
回复
防 DBA 那可是太难了,他们可以把数据库改了, 把你的日志表也改了,把归档日志清理掉,甚至把物理盘给你换了,你一点知觉也没有的,他们经验丰富,玩不过他们的。
小灰狼W 2014-12-12
  • 打赏
  • 举报
回复
防火防盗防DBA 实际上,程序操作也只不过是封装了一个接口,与直接操作数据库并没有本质区别 而如果要篡改,DBA直接再操作日志表就ok了,除非是,一旦操作数据库,立刻发送邮件和短信,或者是将日志存在别的地方 而且日志想记录什么呢,只能记录操作时间和操作终端这类的信息,偶尔检查下这些,保留redo和archive日志,使用logminer分析就可以了

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧