首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同域中使用windows身份验证连接到sql server

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

Database Administration用户
提问于 2016-12-30 09:18:25
回答 3查看 10.7K关注 0票数 5

我知道,在连接到远程SQL服务器或使用Windows身份验证的其他域时,我们有两个选项:

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

但是,Windows身份验证不意味着登录到Windows的用户具有使用Server的身份验证吗?

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

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

保安呢?我们是否必须添加其他Windows用户或计算机才能连接到Server?

我认为我们必须将其他机器添加到我们的域中,或者我们必须将其他受信任的域添加到我们的域。

请帮帮忙,我错过了什么?

EN

回答 3

Database Administration用户

回答已采纳

发布于 2017-01-04 15:17:10

当您登录到计算机时,您可以这样做:

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

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

环境

现在,假设我们有以下基于您的问题的信息:

  • 第一个域用户帐户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上的用户帐户。

场景1:

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

为什么?

无法将COMPUTER_1\USER_3本地SERVER_1帐户作为SERVER_1上的登录名添加到Server中。只能将SERVER_1\USER_n帐户作为Server登录到SERVER_1或DOMAIN_1\USER_n帐户。Server在创建经过Windows身份验证的Serer登录时无法找到COMPUTER_1\USER_n帐户。

场景2

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

为什么?

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

场景3

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

为什么?

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

摘要

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

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

这是对身份验证工作方式的一个非常简短的基本总结。

票数 3
EN

Database Administration用户

发布于 2017-01-04 15:52:11

但是,Windows身份验证不意味着登录到Windows的用户具有使用Server的身份验证吗?

一般来说,是的,但更具体地说,这取决于如何在这个上下文中定义"Windows“。在您的场景中,Windows帐户/登录存在于一个域中,因此可以访问该域中的资源。但是,访问该域并不能神奇地授予所有其他域的访问权限。如果是的话,那么您就可以连接到所有其他的Windows服务器,这些服务器可以从您通过身份验证的服务器上访问,甚至可以跨网络访问。

我认为我们必须将其他机器添加到我们的域中,或者我们必须将其他受信任的域添加到我们的域。

您是正确的:您必须在域之间添加信任关系,以便“其他”域知道它可以信任来自当前所在域的经过身份验证的登录。

以下资源将解释这种信任关系、信任关系的各种选项,并提供有关如何在域之间建立信任关系的详细信息(有些文档是为Windows 2000编写的,但在顶部至少有一个声明(至少通过Windows Server 2012)仍然相关):

票数 2
EN

Database Administration用户

发布于 2017-01-01 06:58:52

windows中有类似于组策略的内容,因此需要首先将能够访问sql服务器或窗口的用户添加到特定的数据库用户组中,以便各自的组织维护该特定域。

此外,大多数情况下,跳转框是由对windows特性的有限访问权限提供的,这些特性使DBA能够运行客户端,例如,并按照他的/her角色执行常规任务,大多数实例节点在server中注册,因此用户只需提供节点或实例名称,就可以通过ssms连接到它。希望这能有所帮助。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/159553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档