我正在寻找使用tSQL中实际用户名的最佳实践,同时,我的ASP.Net应用程序使用全局登录登录到SQL Server,并在web.config文件的连接字符串中配置。
此ASP.Net应用程序是作为SharePoint2007实现的扩展编写的。适用的数据库是旧数据库,而不是SharePoint数据库。
有问题的应用程序需要记录审计(影子)表中的每个插入,更新和删除,包括日期和时间以及用户名。这是通过触发器完成的。
触发器使用SYSTEM_USER值,因此全局登录始终写入审计表。
系统中有大约2700个存储过程,我猜其中有一半存在执行DML语句。
更改应用程序以便记录实际用户名的最佳方法是什么?我的ASP.Net应用程序知道用户名。事实上,我的所有用户都使用Active Directory帐户登录ASP.Net应用程序。
我正在考虑以下选项:
对这些选项或可能考虑的其他选项有何评论?
答案 0 :(得分:2)
我通常使用上下文信息。带模拟的集成安全性会破坏连接池并将用户名传递给procs只是感觉完全错误。