Sql-Server
當應用程序連接到數據庫時,我如何訪問使用者的應用程序使用者名?
我想使用觸發器和審計表來審計對 SQLServer 中表的更改。最終使用者通過應用程序連接到數據庫。如果我
SYSTEM_USER
用來獲取最終使用者的使用者名,那麼它會返回連接到數據庫的應用程序的名稱,而不是該應用程序的使用者唯一登錄名。在這種情況下,擷取使用者唯一應用程序登錄名的標準方法是什麼?
儘管我在上面的評論中註意到了一個潛在的重複問題,但 Microsoft 已經引入了新功能,以便更容易地從客戶端應用程序傳遞(本質上是“會話”)資訊到數據庫,並在 SQL Server 2016 中引入了新功能。
如前所述,
CONTEXT_INFO
這是 2016 年之前的解決方案 - 但它充滿了困難。從 2016 年起,
SESSION_CONTEXT
已推出。與其自己嘗試和總結,還有一篇很棒的文章描述了這兩種方法、它們的缺點並提供了關於它們使用的 SQL 範例。我確信那裡有足夠的資訊來解決這個問題。