我正在尝试链接两个运行在两个独立(!)Active Directory域中的SQL Server(2008R2和2014).
问题是我只能使用远程域中的Windows帐户登录远程服务器.所以挑战是将凭据传递给远程服务器,但在这里我被卡住了.
本地域(本地网络基础结构)dom8
:, Server : dom8\sql2008
, SQL(!)登录:localuser
远程域(Microsoft Azure):, dom14
服务器:dom14\sql20148
,Windows(!)登录:dom14\import
服务器dom8\sql2008
想要连接dom14\sql2014
以便提取一些数据.
这是我在本地服务器上尝试过的:(登录dom8\sql2008
为sa
):
-- 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"
所以很明显我可以在本地创建远程端的凭证.只有远程服务器链接不起作用.