如果使用SQL身份验证进行连接,是否可以获取与MS SQL Server 2008 R2的连接的Windows登录名?此外 - 使用模仿。我只能得到真正的主机名。
我想这不可能,因为它违背了假冒的想法。但你能确定我吗?
答案 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