【问题标题】:Linking a SQL Server 2008 (Mixed Mode) to a SQL Server 2000 (Windows Authentication)将 SQL Server 2008(混合模式)链接到 SQL Server 2000(Windows 身份验证)
【发布时间】:2013-10-08 13:14:47
【问题描述】:

我正在尝试将采用 Windows 身份验证的生产数据库 (SQL Server 2000) 链接到采用混合模式身份验证的测试数据库 (SQL Server 2008)。

我已经尝试过this link下面的代码:

DECLARE @LinkName     SYSNAME   SET @LinkName    = 'PRODUCTIONSERVER'
DECLARE @SrvName      SYSNAME   SET @SrvName     = 'PRODUCTIONSERVER'
DECLARE @LocalLogin   SYSNAME   SET @LocalLogin  = 'sa' --login on test db
DECLARE @RmtLogin     SYSNAME   SET @RmtLogin    = 'DOMAIN\UserName' --win auth login on prod db
DECLARE @RmtPwd       SYSNAME   SET @RmtPwd      = 'password' --win auth password for the login on prod db

IF NOT EXISTS (SELECT * FROM Master..Sysservers WHERE IsRemote = 1 AND SrvName = @LinkName)
BEGIN
   EXECUTE sp_addlinkedserver @server = @LinkName, 
                          @srvproduct = '', 
                          @provider = 'SQLOLEDB', 
                          @datasrc = @SrvName

   EXECUTE sp_addlinkedsrvlogin @rmtsrvname = @LinkName, 
                          @useself = 'false', 
                          @locallogin = @LocalLogin, 
                          @rmtuser = @RmtLogin, 
                          @rmtpassword = @RmtPwd
END

...链接服务器已成功添加,但是当我尝试如下查询时:

SELECT COUNT(*) FROM PRODUCTIONSERVER.ProdDatabase.dbo.ProdTable

我收到一个错误:

Msg 18456, Level 14, State 1, Line 0
Login failed for user 'DOMAIN\UserName'.

我还尝试使用上述 Windows 身份验证凭据(我的个人登录)登录 prod 数据库,我可以通过。

链接的原因是因为我想测试将实时数据(来自 sql 2000)合并到测试数据库(sql 2008)中。

关于如何链接服务器有什么想法吗?

非常感谢。 :)

【问题讨论】:

    标签: sql sql-server sql-server-2008 authentication sql-server-2000


    【解决方案1】:

    通过一个 SSIS 包设法找到一种解决方法(感谢同事的帮助):

    • 将数据从生产服务器导入到测试服务器到在 SQL2008 数据库中创建的临时表中
    • 执行 MERGE 脚本(在 SQL 任务中),该脚本执行从临时表到要更新的实际表的合并

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2023-03-19
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      相关资源
      最近更新 更多