在不同域中使用Windows身份验证连接到sql server

yig*_*itt 5 authentication sql-server

我发现在使用 Windows 身份验证连接到远程 SQL Server 或其他域时我们有两个选择:

  1. runas /netonly 方法
  2. 添加 Windows 凭据

但是Windows身份验证不就意味着登录Windows的用户拥有使用SQL Server的身份验证吗?

因此,由于我不是远程服务器中的授权登录名或用户,我的意思是我不是他们计算机上的 Windows 用户,我如何连接到他们的服务器?

这样每个知道我的域名和实例名的人都可以连接到我的机器。

安全性怎么样?我们是否必须添加其他 Windows 用户或计算机才能连接到我们的 SQL Server?

我相信我们必须将其他计算机添加到我们的域中,或者我们必须将其他域添加到我们的域中受信任。

请帮忙; 我错过了什么?

Joh*_* N. 3

当您登录计算机时,您可以通过以下方式进行操作:

  • 使用计算机上存储的用户登录计算机(例如 COMPUTER_1\USER_3)
  • 使用存储在您正在使用的域的活动目录中的用户登录计算机(例如 DOMAIN_1\USER_1)

登录完成后,您已针对计算机 (COMPUTER_1) 或 Active Directory 域 (DOMAIN_1) 验证了您的帐户 (USER_n) 的真实性。

环境

现在,假设我们根据您的问题获得了以下信息:

  • 第一个域用户帐户 USER_1
  • 第二个域用户帐户 USER_2
  • 第一个计算机用户帐户 USER_3
  • 第二台计算机用户帐户 USER_4
  • 第一台计算机 COMPUTER_1
  • 第二台计算机 COMPUTER_2
  • 第一个服务器 SERVER_1
  • 第二台服务器 SERVER_2
  • 第一个域 DOMAIN_1
  • 第二个域 DOMAIN_2

接下来我假设如下:

  • USER_1、COMPUTER_1 和 SERVER_1 是 DOMAIN_1 的成员
  • USER_2、COMPUTER_2 和 SERVER_2 是 DOMAIN_2 的成员
  • USER_3 是 COMPUTER_1 上的用户帐户
  • USER_4 是 COMPUTER_2 上的用户帐户

场景一:

您使用帐户 USER_3(计算机用户帐户)登录 COMPUTER_1。当您尝试使用 Windows 身份验证连接到 SERVER_1 时,您的访问被拒绝。

为什么?

COMPUTER_1\USER_3 本地 Windows 帐户无法作为 SERVER_1 上的登录名添加到 SQL Server。仅 SERVER_1\USER_n 帐户可以作为 SQL Server 登录名添加到 SERVER_1 或 DOMAIN_1\USER_n 帐户。创建 Windows 身份验证的 SQL Serer 登录名时,SQL Server 无法找到 COMPUTER_1\USER_n 帐户。

场景2

您使用帐户 DOMAIN_1\USER_1(域用户帐户)登录 COMPUTER_1。当您尝试使用 Windows 身份验证连接到 SQL Server SERVER_1 时,您将被授予访问权限。

为什么?

DOMAIN_1\USER_n 帐户可以作为经过 Windows 身份验证的 SQL Server 登录名添加到 SERVER_1 上运行的 SQL Server 实例,然后授予对 SQL Server 的访问权限。SQL Server 将确定您 (DOMAIN_1\USER_1) 是有效的域用户,并将允许您连接到 SQL Server(假设您之前已将这些权限分配给 SQL Server 上的帐户)。

场景3

您使用帐户 DOMAIN_1\USER_1(域用户帐户)登录 COMPUTER_1。当您尝试使用 Windows 身份验证连接到 SERVER_2(记住服务器位于 DOMAIN_2 中)时,您很可能会被拒绝访问。

为什么?

DOMAIN_1\USER_n 帐户无法作为 SQL Server 登录名添加到 SERVER_2 上运行的 SQL Server 实例。除非域 DOMAIN_1 和 DOMAIN_2 之间存在信任。SERVER_2 上的 SQL Server 实例将无法验证您 (DOMAIN_1\USER_1) 是否是有效的域登录名,并将拒绝您访问 SQL Server。

概括

当您登录计算机时,您仅验证了您对计算机或计算机所属域的真实性。任何其他权限(SQL Server 访问、Windows Server 访问)取决于在域中或目标系统上分配给您的帐户的权限。如果系统超出 DOMAIN_1 或 SERVER_1 的范围,则您将无法使用经过 Windows 身份验证的 SQL Server 登录名访问这些服务器。

如果用户尝试连接到非域环境中的 SQL Server,那么使用专用的本机 SQL Server 登录名而不是经过 Windows 身份验证的 SQL Server 登录名可能会更好。当您想要连接到 SQL Server 时,您可以通过 SQL Server 登录进行访问。

这是身份验证工作原理的非常简短的基本摘要。