我们在我们的数据库中有审计表。 使用触发器完成此表的记录。防止审计表篡改
当前,没有什么能够阻止用户登录到数据库服务器,从management studio中打开表并更改审计表中的数据。
什么是可能的机制,可以防止(或至少检测)审计数据篡改案件?
我正在考虑在审计表中添加一列,它应该包含一些基于在该行中输入的值计算的散列值。但是,由于审计是使用触发器完成的,因此恶意用户可以打开任何触发器并查看计算该散列值的逻辑。
编辑:
我还不够清楚。应用程序用户无权访问数据库。我指的是像DB管理员这样的用户,对数据库有适当的权限。尽管如此,如果这个数据库管理员登录并有权使用审计表进行调和,我希望至少有一些机制来检测这种篡改。
如何不给恶意用户写入访问该表?或者,如果你是偏执的发送日志到一个很少有人可以访问的其他计算机,而不是使用数据库中的表。 – CodesInChaos 2011-01-21 10:16:24
只需限制权限,以便只有某些登录名在该表上具有插入/更新/删除权限。 – LukeH 2011-01-21 10:17:58
只有当他们作为系统管理员以显式或隐式方式登录(例如以管理员身份登录Windows)时,他们才能使用Management Studio绕过权限。强大的SQL安全性取决于良好的网络安全习惯。 – Bruce 2011-05-16 18:24:59