Sql server 2008 r2 如何链接不同AD域中的服务器?

Sql server 2008 r2 如何链接不同AD域中的服务器?,sql-server-2008-r2,active-directory,windows-authentication,sql-server-2014,credentials,Sql Server 2008 R2,Active Directory,Windows Authentication,Sql Server 2014,Credentials,我正在尝试链接两个SQL Server(2008R2和2014),它们运行在两个独立的Active Directory域中 问题是,我只能使用远程域的Windows帐户登录到远程服务器。因此,挑战在于将凭据传递到远程服务器,但我在这里遇到了困难 本地域(本地网络基础架构):dom8,服务器:dom8\sql2008,SQL(!)登录:localuser 远程域(Microsoft Azure):dom14,服务器:dom14\sql20148,Windows(!)登录:dom14\import

我正在尝试链接两个SQL Server(2008R2和2014),它们运行在两个独立的Active Directory域中

问题是,我只能使用远程域的Windows帐户登录到远程服务器。因此,挑战在于将凭据传递到远程服务器,但我在这里遇到了困难

  • 本地域(本地网络基础架构):
    dom8
    ,服务器:
    dom8\sql2008
    ,SQL(!)登录:
    localuser
  • 远程域(Microsoft Azure):
    dom14
    ,服务器:
    dom14\sql20148
    ,Windows(!)登录:
    dom14\import
服务器
dom8\sql2008
想要连接到
dom14\sql2014
,以便提取一些数据

以下是我在本地服务器上尝试的内容:(以
sa
的身份登录
dom8\sql2008
):

但是,它不起作用。每当用户
localuser
试图通过本地服务器连接到远程服务器时,就会出现一个错误
登录失败

顺便说一下,我可以使用SQL Server Studio连接到远程域,如下所示:

runas /netonly /user:dom14\user14  "C:\...\Ssms.exe"

显然,我可以在本地创建远程端的凭证。只有远程服务器链接不起作用

要使用域B密码登录到域a计算机,您将需要两个域之间的信任

信任建立后,您可以转到域A计算机并向域B用户ID授予执行您想要执行的操作所需的权限

但是,它看起来更像是您试图使用本地帐户,而不是基于脚本的域帐户。我怀疑您引用域的方式,而不是服务器本身可能是原因

看看台词:

-- Create a credential for the remote Windows login:
create credential cred_import WITH IDENTITY= 'dom14\user14', 
       SECRET = 'password' ;
DOM14是您的域名吗?或者您尝试连接到的服务器的名称

exec sp_addlinkedserver 
    @server='dom14\sql2014', 
    @srvproduct='SQL Server' 
另一个域中的服务器应该是XYZ.domain.COM,其中XYZ是实际的服务器名,domain.COM是服务器所在的域。此外,您还需要确保服务器有权读取其他域DNS表


从服务器A,您应该能够转到CMD提示符并按名称ping另一台服务器(可能需要FQDN,具体取决于后缀搜索列表)。只要返回服务器的IP地址,就不关心ping是否失败。如果您没有返回IP地址,则域之间的名称解析会遇到更基本的问题(您可能需要域a的DNS服务器中的转发器将域B的名称指向域B中的DNS服务器),反之亦然(a到B、B到a等)。

我手头上没有其他域中的SQLServer,但我会尝试使用该方法。Azure服务器也在单独的AD域中工作。我不太明白他们为什么要为远程服务器创建ODBC源。也许这是一个关键点。@ingazaaaa这很有趣。谢谢我们确实有一个Azure服务器,但忘了提到这一点。明天我将阅读并尝试那篇文章@Ingaz只是一个简短的评论:似乎在本文中,他们使用的是SQL登录,而不是WinAuth登录。他们还使用
sp\u addLinkedServLogin
。明天我会更详细地读到,我住的地方已经很晚了。
exec sp_addlinkedserver 
    @server='dom14\sql2014', 
    @srvproduct='SQL Server'