我需要在不属于域的数百台服务器上运行一些临时查询。每个服务器都有一个低权限 SQL 用户帐户,该帐户对一些感兴趣的表具有只读访问权限。
我的想法是将这些服务器的名称存储在一个表中,并使用该表来驱动 OPENDATASOURCE 或 OPENROWSET 命令。
服务器要么位于不同的域、不受信任的域、工作组等中。一团糟。
我一生都找不到如何配置这些命令以使用 SQL Server 帐户/密码组合的示例。
注意:这发生在沙盒中,并不适用于现实世界。它只是一个概念证明,因此安全性不是主要问题。这些服务器是通过一个模拟网络真实增长的过程来创建的。
作为记录,我能够让 OPENROWSET 工作:
SELECT *
FROM OPENROWSET('SQLNCLI',
'DRIVER={SQL Server};SERVER=MyServer;UID=MyUserID;PWD=MyCleverPassword',
'select @@ServerName')
要使用 SQL 登录运行它,只需在连接字符串中指定用户 ID 和密码(在 BOL 中称为“初始化字符串”)