当尝试连接到网络中另一个系统上的 SQL Server 数据库时,两者都在工作组中,当尝试使用带有 Windows 身份验证的 SQL Server Management Studio 连接到 SQL Server 2008 实例时,我连接上了。
但是当尝试从我的应用程序连接时,我收到以下错误
(登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。)本机 = 18452)。
如果 SQL Server Management Studio 可以连接,我的应用程序需要什么才能连接?
小智 5
如果您使用的是 Windows 7,则可能必须“以管理员身份运行”。这将允许应用重复使用您的 Windows 凭据并将它们传递给 SQL Server。否则,您会将来宾凭据传递给 SQL Server。
由于您在工作组中运行,唯一可能的身份验证是使用“镜像 NT 帐户”进行身份验证,这意味着尝试进行身份验证的进程必须以正在验证该进程的主机上“镜像”的身份运行。“镜像”帐户是在进行身份验证的两台主机上具有相同名称和密码的不同本地帐户。
因此,您必须从 SQL Server 主机上镜像的帐户运行 SSMS (例如<computername>\Administrator,由 镜像<sqlhost>\Administrator并具有相同的密码)。请注意,UAC 在这里没有任何作用(即running as administrator不会有帮助)。
您的应用程序可能在不同的本地帐户(也许是默认的 IIS appool?)下运行,并且应用程序运行所用的帐户未镜像到 SQL Server 主机上。
最好的解决方案是放弃临时网络并部署适当的 AD(域)。作为临时措施,请确保您在 SQL Server 主机上镜像的帐户下运行应用程序。