我有一个 SQL Server 2008 R2 数据库,我正尝试使用连接字符串中的集成安全性使用 ADO.NET 连接到该数据库。
数据库位于 64 位 Windows Server 2003 计算机上。客户端是 64 位 Windows 7 Enterprise 计算机。
我从 SQL Server 收到的具体错误是:
登录名来自不受信任的域,无法与 Windows 身份验证一起使用
该计算机被添加为 SQL Server 上的 Windows 帐户,DOMAIN.edu\ComputerName$
并被授予对目标数据库的完全权限。
服务器和客户端都是同一个 Active Directory 域的一部分。计算机可以通过远程桌面相互通信。客户端计算机可以看到服务器计算机上的网络共享,因此我认为网络连接不是问题。
当 SQL Server 2008 R2 数据库驻留在 64 位 Windows XP Professional 计算机上并且客户端是同一台机器时,这种设置没有出现问题。
我还可以验证或修改什么以使我当前的设置适用于机器级身份验证?
答案1
这实际上更多的是一个 AD 问题而不是 SQL 问题,但是......
该应用程序以谁的身份运行?您想要做什么?
通过指定 DOMAIN\computername$ 具有完全权限,您暗示 LocalSystem (NT Authority\System) 或 NetworkService 是将运行该过程的帐户。
http://msdn.microsoft.com/en-us/library/ms684190%28VS.85%29.aspx
(通常建议使用服务帐户,或授予单独登录的权限。)
如果您指定该进程作为 LocalService 运行,则不会传递机器凭据。