【问题标题】:Best approach to connect to SQL Server from a non-domain web host [closed]从非域 Web 主机连接到 SQL Server 的最佳方法 [关闭]
【发布时间】:2015-04-17 20:13:01
【问题描述】:

我想使用不在域中的 Web 主机的域帐户连接到 SQL Server。这是一个普通的 ASP.NET Web 应用程序。这个域外站点使用域凭据访问 Reporting Services,我不知道为什么 SQL 连接不允许这样做。

我们有很多内部应用程序(win 表单和 Web 表单),这是最后一个转换为集成安全性的应用程序,因此我们可以通过 AD 全面管理权限,但如果我必须在 SQL 中进行,那么我可以接受失败。

有没有人想出如何做到这一点,或者这是不可能的?

【问题讨论】:

  • 我知道在标准 Windows 安全性中,如果您的客户端本地用户帐户与服务器上的帐户具有相同的用户名和密码,则它可以工作。我不确定AD在多大程度上干扰了这一点。您可能会在 Server Fault 上获得更有经验的回复,该回复专注于专业级系统和服务器管理。在类似的情况下,我通常只是放弃创建 SQL 用户。 :) 祝你好运,+1 表示问题。
  • 凭据取自运行 Web 应用程序的线程。您可能能够模拟用户并将线程的身份更改为域帐户。我没有所有详细信息,但这可能会有所帮助:link
  • 我很确定我一直在检查这个想法,但我又试了一次。尝试将我的本地用户名与我的域用户名匹配(相同的密码,必须授予文件夹权限并作为服务/批处理策略登录)不起作用,并导致连接到 SQL 时出现异常:登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。
  • 这对我来说很有意义,因为我看不到集成安全性如何工作(即必须在非域主机上进行身份验证,然后在访问 SQL Server 时提供生成的凭据 - 某事这不可能发生)。我必须能够修改连接字符串以提供类似于我必须为 SSRS 做的用户/通行证,但这是一个 Web 服务。据我所知,用于集成安全的连接字符串不支持这一点。
  • 因此,我无法在编码中更改身份(即模拟),因为没有域控制器来处理更改身份所需的身份验证。我想我必须能够提交带有凭据的请求。我没有从“设置线程标识”链接中获得这种印象。

标签: asp.net sql-server connection-string


【解决方案1】:

您可以Connect to domain SQL Server 2005 from non-domain machine 及更高版本,但这要求您可以从远程计算机连接到域。

您可以使用域凭据连接到 Reporting Services,因为它使用 NTLM 进行通过 HTTP 身份验证的 Windows 集成身份验证。与 SQL Server 的直接连接不使用 HTTP,因此这种类型的身份验证不可用。

【讨论】:

  • 哦,这看起来很有希望。下周我会试一试,然后回来查看。
【解决方案2】:

您需要将 SQL 框加入 Web 应用域或其他方式,或者在域之间建立信任关系

runas /netonly /user:domain\username "c:\path\ssms.exe"

在此处查看此帖子: http://www.mssqltips.com/sqlservertip/3250/connect-to-sql-servers-in-another-domain-using-windows-authentication/

【讨论】:

  • 无法加入域或创建信任关系,因为此框位于 DMZ 中并且已完全锁定。此外,我需要我的 Web 应用程序来访问 SQL,而不是 Management Studio。这是一个可供公众访问的生产网络服务器。
猜你喜欢
  • 1970-01-01
  • 2012-02-23
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多