因为我们没有在SQL服务器中以用户的身份实现应用程序的用户,所以当应用程序服务器连接到数据库时,每个应用程序总是使用相同的凭证来附加到每个数据库。SQL Server:修改用于审计目的的“应用程序名称”属性
这提出了审计问题。使用触发器,我们希望存储每个更新,插入和删除,并将每个更新分配给特定用户。一种可能的解决方案是为每个表添加一个“由用户更新”列并每次更新。这意味着每个表上的新列和每个存储过程上的新参数。这也意味着你只能做软删除。
取而代之的是,我建议使用连接字符串的应用程序名称属性以及与扳机内APP_NAME()属性阅读本。我用一个简单的应用测试了它,它似乎工作(格式可以如此:App = MyApp | User = 100)。
你们的问题是,这是一个坏主意,你有更好的吗?
你是如何解决这个问题的?您可以使用`CONTEXT_INFO`从触发器读取“App = MyApp | User = 100”?我需要修改* ApexSQL Audit 2008 *使用的触发器,并存储通过'ApplicationName'传递的“用户”。 – AMissico 2013-07-27 01:32:00