繁体   English   中英

使用受信任的连接使用IIS7从DMZ Web服务器连接到内部SQL Server 2008 R2?

[英]Connecting to internal SQL Server 2008 R2 from DMZ web server using IIS7 using a trusted connection?

我正在尝试连接并收到如下错误:

登录失败。 该登录名不能与Windows身份验证一起使用

我在SQL Server和Web服务器上使用镜像的本地帐户,因为我只是试图在不在同一域中的计算机之间使用受信任的连接。 看来这是相当普遍的事情,但是经过数天试图找到适合我的情况的答案后,我不知道任何答案都适用……或者我只是个事实。 NET开发人员而不是系统管理员或DBA意味着我拥有它,只是不知道。

我可以这样说:

  • CMS Web服务器:在Windows Server 2008,IIS7和公司DMZ上运行的ASP.NET 4.0 Web应用程序
  • CMS数据库服务器:域服务器上的SQL Server 2008 R2
  • 出于各种原因(我将不涉及),对凭据进行加密是不够的。
  • 应用程序需要连接的数据库端口不是标准端口,并且设置为在其他端口上侦听。
  • 设置数据库镜像不是一种选择,并且不能真正满足要求(以我的想法)

此外,仅供参考,如果这有助于您了解:

  • 内容输入发生在内部Web服务器上,该服务器将内容发布到DMZ Web服务器访问的同一数据库。
  • 设置了内容服务器,以使网站与Windows域用户以集成模式运行应用程序池,该Windows域用户已使用-ga开关设置为服务帐户,并具有所有适当的权限,并且一切运行正常。

  • 使用镜像帐户(在SQL Server计算机和Web计算机上设置相同的用户名和密码)的无域访问的外部Web服务器。

  • 使用-ga开关将Web服务器上的本地帐户设置为服务帐户,并作为我的应用程序的应用程序池标识运行。
  • 在“ SQL Server”框中,创建具有相同凭据和域用户标识具有的相同权限的本地用户
  • 通过使用SQL Server用户凭据通过Web服务器上安装的MGMT Studio连接到SQL Server,效果很好。

现在,如果我将用户名放入连接字符串中,那么一切就完美了。 一旦像在域服务器连接字符串中那样在连接字符串中输入了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,并且没有配置Web应用程序的经验。 因此,我们可能会缺少一些东西,任何建议或想法都会有所帮助。 我想念什么?

如果不选择使用SQL凭据,则应使用Active Directory并创建单向信任(使DMZ服务器域信任您的内部域),在内部域中创建一个服务帐户,DMZ应用程序可以使用该服务帐户,并授予该帐户访问数据库。 然后它将能够生成SSPI上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM