【发布时间】:2016-03-18 08:15:08
【问题描述】:
我正在尝试链接在两个 独立 (!) Active Directory 域中运行的两个 SQL Server(2008R2 和 2014)。
问题是我只能使用远程域的 Windows 帐户登录远程服务器。所以挑战是将凭据传递给远程服务器,但我在这里卡住了。
- 本地域(本地网络基础设施):
dom8,服务器:dom8\sql2008,SQL(!)登录:localuser - 远程域(Microsoft Azure):
dom14,服务器:dom14\sql20148,Windows(!)登录:dom14\import
服务器dom8\sql2008 想要连接到dom14\sql2014 以提取一些数据。
这是我在本地服务器上尝试过的:(以sa 身份登录dom8\sql2008):
-- Create a credential for the remote Windows login:
create credential cred_import WITH IDENTITY= 'dom14\user14',
SECRET = 'password' ;
-- Alter the local SQL login and add the created credential:
alter login local_user with credential = cred_import ;
-- Create the Linked Server entry:
exec sp_addlinkedserver
@server='dom14\sql2014',
@srvproduct='SQL Server'
-- Add the credential to the linked server:
exec sp_addlinkedsrvlogin
@rmtsrvname ='dom14\sql2014',
@useself = 'FALSE',
@locallogin=local_user,
@rmtuser = [cred_import], -- trying to pass on the credential
@rmtpassword = NULL
但是,它不起作用。每当用户localuser尝试通过本地服务器连接到远程服务器时,就会收到错误login failed。
顺便说一句,我可以使用 SQL Server Studio 连接到远程域,如下所示:
runas /netonly /user:dom14\user14 "C:\...\Ssms.exe"
显然我可以在本地创建远程端的凭据。只有远程服务器链接不起作用。
【问题讨论】:
-
我手头没有不同域中的 SQLServer,但我会尝试配方 blogs.msdn.com/b/sqlcat/archive/2011/03/08/… 。 Azure 服务器也可以在单独的 AD 域中工作。我不太明白他们为什么要为远程服务器创建 ODBC 源。也许这是一个关键点。
-
@Ingaz Aaaa 这很有趣。谢谢!我们确实有一个 Azure 服务器,忘记提了。明天将阅读并尝试该文章!
-
@Ingaz 快速评论一下:似乎在本文中,他们使用的是 SQL 登录,而不是 WinAuth 登录。他们也在使用
sp_addlinkedsrvlogin。明天我会更详细地阅读,在我这里已经很晚了。
标签: sql-server-2008-r2 active-directory windows-authentication sql-server-2014 credentials