【发布时间】:2011-06-13 01:18:53
【问题描述】:
我们的数据库中有审计表。 此表的记录是使用触发器完成的。
目前,没有什么可以阻止用户登录数据库服务器、从管理工作室打开表和更改审计表中的数据。
有哪些可能的机制可以防止(或至少检测)审计数据篡改?
我正在考虑在审计表中添加一列,该列应包含一些根据在该行中输入的值计算的哈希值。但是,由于审计是使用触发器完成的,恶意用户可以打开任何触发器并查看计算此哈希的逻辑。
编辑:
我还不够清楚。应用程序用户无权访问数据库。我指的是像 DB admin 这样的用户,对数据库具有适当的权限。不过,如果这个数据库管理员登录并有权修改审计表,我希望至少有一些机制来检测这种篡改。
【问题讨论】:
-
不给恶意用户对该表的写入权限怎么样?或者,如果您偏执,请将日志发送到很少有人可以访问的另一台计算机,而不是使用数据库中的表。
-
只需限制权限,以便只有某些登录名具有对该表的插入/更新/删除权限。
-
如果他们以系统管理员身份显式或隐式登录(例如以管理员身份登录 Windows),则只能使用 Management Studio 绕过权限。强大的 SQL 安全性取决于良好的网络安全习惯。
标签: c# sql-server audit tampering