- - PR -
MSSQL2000の即時更新レプリケーションのsaユーザーのpass設定
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 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) よろしくお願いいたします。 |
|
投稿日時: 2006-03-08 11:17
saログインを許可していますか?
|
|
投稿日時: 2006-03-08 11:52
返信していただきありがとうございます。
サブスクライバのsaユーザーをパブリッシャー側でログイン許可を 設定する方法が分からないのですが、 各インスタンス環境ではsaユーザーのログインは許可されています。 |
|
投稿日時: 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 ] |
|
投稿日時: 2006-03-09 16:58
松本です。こんにちは
こちらにも同じ内容で投稿されてたのですね ^^; 文章を引用されるときは、引用だということを明記してくださいませ〜 こちらが原文になります。 http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=286705&SiteID=7 |
|
投稿日時: 2006-03-10 10:06
ごめんなさい。
投稿前にご連絡すれば良かったのですが、気が利かず、申し訳ありません。 今後は気をつけます。 |
1
