在连接字符串的用户ID不是可变的,并且程序从用户ID不同(可以GUID例如)。你怎么审计日志删除,如果你的连接字符串的用户ID是静态的?

登录插入/更新/删除的最佳位置是通过触发器。但是,静态连接字符串,它很难日志谁删除的东西。有什么办法呢?

有帮助吗?

解决方案

使用SQL Server,您可以使用CONTEXT_INFO来传递信息,以触发。

我在代码(由网络应用程序调用)其中,I必须使用触发器(在桌子上例如多个写入路径)使用此。这是不能把我的逻辑到存储过程。

其他提示

我们也有类似情况。我们的Web应用程序始终运行作为相同的数据库用户,但有不同的逻辑用户说出来的应用程序跟踪和控制。

我们通常在逻辑用户ID作为参数传递到每个存储过程。为了跟踪删除,我们一般不删除该行,只要勾选地位,删除,设置相应的LastChgID和LastChgDate领域。对于重要的表,在这里我们保持一个审计日志(每一个变化状态的副本),我们用上面的方法,并触发拷贝行的审计表中,LastChgID已经设置正确,触发并不需要担心有关获取的ID。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top