如果使用 SQL auth 建立连接,是否可以获得连接到 MS SQL Server 2008 R2 的 Windows 登录名?此外 - 使用模拟。我只能得到真实的主机名。
我想这是不可能的,因为它反对模仿的想法。但你能确定我吗?
如果使用 SQL auth 建立连接,是否可以获得连接到 MS SQL Server 2008 R2 的 Windows 登录名?此外 - 使用模拟。我只能得到真实的主机名。
我想这是不可能的,因为它反对模仿的想法。但你能确定我吗?
如果使用 SQL auth 进行连接,则绝对无法检索“windows 登录名”,无论连接是否是在模拟上下文下进行的。另一种方法是使用带外进程,如会话上下文信息,但应用程序必须合作并适当地设置每个打开连接的上下文信息。如果您有审核执行操作的原始 Window Login 之类的要求,则必须将 SQL auth 替换为 Windows auth。
使用 Windows 集成身份验证建立连接后,很简单:
declare @userid varchar(15)
SELECT @userid = nt_username
FROM sys.sysprocesses
WHERE spid = @@SPID
select @userid