- PR -

MSSQL2000の即時更新レプリケーションのsaユーザーのpass設定

1
投稿者投稿内容
kakkun
会議室デビュー日: 2004/12/08
投稿数: 6
投稿日時: 2006-03-08 11:14
お世話になります。

1台のPCにSQLサーバーのインスタンスを4つ構築。
全てのインスタンスで幾つかのテーブルを共有、
各インスタンスへはASP.Netで作成したアプリケーションで更新し、
更新された情報は即時に各インスタンスに反映する必要があります。
(但し、パブリッシャ側からの更新は無いとお考え下さい。)

即時更新レプリケーションを使用を考えて設定しました。
パブリッシャー側からの更新はかなり遅延してサブスクライバに反映されますが、
サブスクライバからの更新は以下のエラーが発生して更新することができません。
"[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user'sa'."

sp_link_publicationを実行し、saユーザーにパスワードを設定するようにしましたが、
正常終了し、再度、パブリッシャー側からの更新を試みますが、
saユーザーのログインに失敗したというメッセージが表示されて更新することができません。

環境は以下の通りです。
OS:Windows2003Server(SP1)
DBMS:SQL Server Enterprise Edition(SP4)

よろしくお願いいたします。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2006-03-08 11:17
saログインを許可していますか?
kakkun
会議室デビュー日: 2004/12/08
投稿数: 6
投稿日時: 2006-03-08 11:52
返信していただきありがとうございます。

サブスクライバのsaユーザーをパブリッシャー側でログイン許可を
設定する方法が分からないのですが、
各インスタンス環境ではsaユーザーのログインは許可されています。
kakkun
会議室デビュー日: 2004/12/08
投稿数: 6
投稿日時: 2006-03-09 15:14
他のサイトにも同じような内容で投稿しました。
問題解決に至る回答を得られました。
以下にその内容をご報告させていただきます。

sp_link_publication の中身を見ると...

EXEC @retcode = master.dbo.xp_repl_encrypt @enc_password OUTPUT

update MSsubscription_properties
set

publisher_password = @enc_password,


となっていたので、即時更新の認証がらみの設定は、
サブスクライバ側の MSsubscription_properties テーブルであることが
分かります。

■ 回避策は MSsubscription_properties を直接更新しました。
但し、暗号化する必要があるので、以下のようなソースを作成して、
強引に、このテーブルを UPDATE ステートメントで直接更新したら、
うまくログインできて即時更新できるようになりました。

サブスクライバへ接続して、

USE データベース名
declare @password sysname
set @password = 'XXXXX' -- パブリッシャ側の sa のパスワード

declare @enc_password nvarchar(524)
set @enc_password = @password
EXEC master.dbo.xp_repl_encrypt @enc_password OUTPUT
--SELECT @enc_password --暗号化されたパスワード

UPDATE MSsubscription_properties
SET publisher_security_mode=0
,publisher_login='sa'
,publisher_password=@enc_password
WHERE
publisher = 'パブリッシャ名'
AND publisher_db = 'パブリッシュ対象の DB 名'
AND publication = 'パブリケーション名'

[ メッセージ編集済み 編集者: kakkun 編集日時 2006-03-09 15:16 ]
matu_tak
会議室デビュー日: 2003/02/06
投稿数: 13
投稿日時: 2006-03-09 16:58
松本です。こんにちは
こちらにも同じ内容で投稿されてたのですね ^^;
文章を引用されるときは、引用だということを明記してくださいませ〜

こちらが原文になります。
http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=286705&SiteID=7
kakkun
会議室デビュー日: 2004/12/08
投稿数: 6
投稿日時: 2006-03-10 10:06
ごめんなさい。
投稿前にご連絡すれば良かったのですが、気が利かず、申し訳ありません。
今後は気をつけます。
1

スキルアップ/キャリアアップ(JOB@IT)