因爲我們沒有在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