场景是我们的客户拥有并管理一个托管在他们客户场所的系统(我们编写了它)。他们的客户在合同上受到限制,不能更改系统后面数据库中的任何数据,但如果他们愿意,他们可以更改数据,因为他们拥有完全的管理员权限(服务器由他们采购并托管在他们的场所内)。
要求是在他们更改任何数据时获得通知。现在,请忽略删除数据,这个讨论是关于修改表格中的数据。
我们使用 Linq to Sql 并覆盖了数据上下文,因此对于每次读取数据,我们将行数据的散列与存储的散列进行比较,该散列之前在插入/更新期间保存在表中的每一行上。
我们关心可扩展性,所以我想知道是否有人有其他想法。我们试图在 SSMS 中获取数据更改的通知,查询直接在数据库上运行等。此外,如果有人要停止我们的服务(Windows 服务),在启动时我们需要知道一行已被更改。有什么想法吗?
编辑:让我澄清一下,因为我本来可以更清楚。我们不一定要阻止所做的更改(这是不可能的,因为他们拥有完全访问权限)如果他们更改数据,更多人会收到通知。