我正在尝试连接并收到如下错误:
登录失败。登录不能与Windows身份验证
一起使用
我在SQL Server和Web服务器上使用镜像本地帐户,因为我只是尝试在不在同一域上的计算机之间使用可信连接。这似乎是相当普遍的事情,但经过几天试图找到适用于我的情况的答案,我不承认任何答案都适用......或者我只是一个事实。 NET开发人员,而不是系统管理员或DBA意味着我拥有它,只是不知道它。
这就是我能说的:
此外,如果这有助于了解:仅供参考:
内容服务器设置为让网站以集成模式运行应用程序池,使用-ga开关设置为服务帐户的Windows域用户并获得所有适当的权限,一切运行完美。
外部Web服务器,没有域访问权限,使用镜像帐户(在SQL Server计算机和Web计算机上设置相同的用户名和密码)。
现在,如果我将用户名放入连接字符串中,一切都很完美。一旦我将trusted_connection = yes放在连接字符串中,就像我对域服务器连接字符串所做的那样,我就会收到信任错误。
因此,如果我的连接字符串是这样的,它可以正常工作:
Server=myServerAddress;Database=myDataBase;Username=MyUser; Password=MyPassword;
如果我将连接字符串更改为其中任何一个,则会失败:
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
或
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
我正在与客户的一位网络管理员合作,他不一定是DBA,也没有配置网络应用程序的经验。所以我们可能会遗漏一些东西,任何建议或想法都会有所帮助。我错过了什么?
答案 0 :(得分:0)
如果使用SQL凭据不是一个选项,那么您应该使用Active Directory并创建单向信任(让DMZ服务器域信任您的内部域),在您的DMZ应用程序可以使用的内部域中创建一个服务帐户,并授予该帐户访问数据库的权限。然后它将能够生成SSPI上下文。