Sql-Server

當應用程序連接到數據庫時,我如何訪問使用者的應用程序使用者名?

  • December 4, 2018

我想使用觸發器和審計表來審計對 SQLServer 中表的更改。最終使用者通過應用程序連接到數據庫。如果我SYSTEM_USER用來獲取最終使用者的使用者名,那麼它會返回連接到數據庫的應用程序的名稱,而不是該應用程序的使用者唯一登錄名。

在這種情況下,擷取使用者唯一應用程序登錄名的標準方法是什麼?

儘管我在上面的評論中註意到了一個潛在的重複問題,但 Microsoft 已經引入了新功能,以便更容易地從客戶端應用程序傳遞(本質上是“會話”)資訊到數據庫,並在 SQL Server 2016 中引入了新功能。

如前所述,CONTEXT_INFO這是 2016 年之前的解決方案 - 但它充滿了困難。

從 2016 年起,SESSION_CONTEXT已推出。

與其自己嘗試和總結,還有一篇很棒的文章描述了這兩種方法、它們的缺點並提供了關於它們使用的 SQL 範例。我確信那裡有足夠的資訊來解決這個問題。

引用自:https://dba.stackexchange.com/questions/217753