Windows 認証の運用データベース (SQL Server 2000) を、混合モード認証のテスト データベース (SQL Server 2008) にリンクしようとしています。
私はすでにこのリンクから以下のコードを試しました:
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) にマージすることをテストしたいからです。
サーバーをリンクする方法についてのアイデアはありますか?
どうもありがとうございました。:)