如果连接由SQL身份验证和模拟授权,则获取真实用户Windows登录名

时间:2013-05-22 11:27:49

标签: sql-server authentication sql-server-2008-r2

如果使用SQL身份验证进行连接,是否可以获取与MS SQL Server 2008 R2的连接的Windows登录名?此外 - 使用模仿。我只能得到真正的主机名。

我想这不可能,因为它违背了假冒的想法。但你能确定我吗?

2 个答案:

答案 0 :(得分:3)

如果使用SQL身份验证进行连接,那么绝对无法检索“Windows登录名”,与是否在模拟上下文之间建立连接无关。另一种方法是使用像session context information这样的带外流程,但应用程序必须合作并在每个连接Open上适当设置上下文信息。如果你有像审计那样的要求执行一个动作的原始Window Login,那么必须用Windows auth替换SQL auth。

答案 1 :(得分:0)

使用Windows集成身份验证建立连接后,很简单:

declare @userid varchar(15)

SELECT @userid = nt_username 
FROM sys.sysprocesses 
WHERE spid = @@SPID

select @userid

declare @userid varchar(15) SELECT @userid = nt_username FROM sys.sysprocesses WHERE spid = @@SPID select @userid