SQL Server – 以另一个域用户身份连接

我们使用Windows身份validation连接到我们的内部SQL Server实例(2005年和2008年的混合)。

当我打开SQL Server Management Studio并连接到服务器时,显然使用我当前的域凭据连接了我。

是否有可能以某种方式覆盖这个作为替代域用户login?

目的是检查用户是否已正确设置,并可以访问我想要的数据库。

我知道我可以像他们一样login到一个Windows会话,这样做,但这似乎有点乏味。

在做一些挖掘之后,似乎唯一的方法就是通过runas命令:

runas /user:domain\user "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" 

或者对于64位环境,使用32位程序文件文件夹:runas / user:domain \ user“C:\ Program Files(x86)\ Microsoft SQL Server \ 100 \ Tools \ Binn \ VSShell \ Common7 \ IDE \ Ssms。可执行程序”

如果你这样做,你将无法以他们的身份login,但是你将能够在SQL Server中validation他们的权限。 如果您正在使用T-SQL,则可以使用EXECUTE AS命令模拟SQL Server中的用户(使用REVERT切换回)。 例如:

 EXECUTE AS LOGIN = 'MyDomain\SomeUser'; GO SELECT name FROM mydb.sys.objects; GO REVERT; GO 

IIRC,如果您将驱动器作为您要使用的用户映射到服务器,则在执行服务器上的任何其他操作之前,当您使用集成安全性进行连接时,将使用已在该服务器上build立的凭据。 当我从一台不受服务器所在的域信任的工作站工作时,我曾经这样做过。您仍然只获得一组凭据,这个技巧对于两组不同的凭证是无效的。

此外,TSQL SETUSER命令在这里可能很有用。 它可以让你模仿某人,就像su在linux上那样。 2008年的文件说,这是不赞成,但我认为它仍然有效。