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

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

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

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

是否有可能以某种方式覆盖此功能并以备用域用户身份登录?

目的是检查用户是否已正确设置并可以访问我希望他们访问的数据库。

我知道我可以以他们的身份登录到 Windows 会话,并以这种方式执行操作,但这似乎有点乏味。

答案1

经过一番挖掘后,似乎实现此目的的唯一方法是通过 runas 命令:

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

或者对于 64 位环境,使用 32 位 Program Files 文件夹:runas /user:domain\user "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"

答案2

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

EXECUTE AS LOGIN = 'MyDomain\SomeUser';
GO

SELECT name FROM mydb.sys.objects;
GO

REVERT;
GO

答案3

如果我没记错的话,如果您将驱动器以要使用的用户身份映射到服务器,则在服务器上执行任何其他操作之前,当您使用集成安全性进行连接时,将使用您已在该服务器上建立的凭据。当我在服务器所在域不信任的工作站上工作时,我曾经这样做过。您仍然只能获得一组凭据,此技巧不适用于两组不同的凭据。

此外,TSQL SETUSER 命令在这里也很有用。它允许您模拟某人,有点像 Linux 上的 su。2008 年的文档说这已被弃用,但我认为它仍然有效。

相关内容