生产中发生了最奇怪的sql server bug

时间:2014-08-31 09:42:43

标签: sql asp.net sql-server database security

与任何其他Web应用程序一样,我使用aspx表单和sql数据库获取Web应用程序,托管在亚马逊上。

从上个月开始发生一件奇怪的事情,当有人从网络表单提交更改时,更改已保存在数据库中,但一夜之间值会回滚到旧值。没有自动进程,没有夜间进程或备份,没有被攻击的Web帐户,没有任何东西,它只是在数据库中神奇地回到旧值。

我确实在受影响的表中放置了一个日志表来跟踪每个事务,什么时间,谁做了它等,并发现变化发生在一天的不同时间(cant wireshark),并且它也发生在随机桌子上的字段(列)。

例如: 今天我改变了" ontime"," offitme"," foodorderFlag" ," activeFlag"在我的一张桌子上,明天我看到了正常运行时间,停机时间和主动标志变回旧的价值观。

然后我再次改变了所有这些,第二天只有ontime和foodorderFlag改回旧值。

我的日志: 我有一个Audit表,当公司表被插入,更新或删除时,它通过触发器获得一个条目。 enter image description here

在上面,您会看到突出显示的是公司表(正常流程)中的Web表格更新值时公司表的日志。 datemodified和modifiedbyuserid会在场景后自动更新,而不是Web表单上的直接字段。

现在

见下文

enter image description here

上面突出显示的是:如何在午夜时将值更改回公司表中的旧值。请注意,此时不会回滚datemodified和modifiedbyuserid,这意味着此更改不是表单Web表单。看起来像使用相同登录但不是Web表单的外部源。此外,如果系统或sql更改了这个,用户将像amazona \ administrator或sa等..但这不是这里的情况。

任何想法,它可能是什么,我现在认为是什么?

全部固定 这一切都是因为我懒得粗心懒散。几个月前我做了迁移,而不是在一个新窗口中运行脚本我在现有的存储过程(生产:o)下面做了它,并忘了删除它。无论何时调用存储过程,它都会运行迁移脚本,重置值。抱歉浪费你的时间。

0 个答案:

没有答案