田舎のパパが日常で感じた気になる話を発信するブログです。

気になるボックス

データベース

[SQLServer]異なるサーバー間でのデータリストアによるユーザー不整合の解決方法

投稿日:

不具合が発生して調査するときに本番環境のデータベースをテスト環境へリストアしたいことがあります。バックアップ元とリストア先でサーバーが異なる場合、ログインユーザーのマッピングが正しくできないことがあります。リストア+αでもう一手間必要です。

スポンサーリンク

問題を解決するには

原因

SQLServerで使用されるログインユーザーは masterデータベースで管理されています。リストア先に同一ユーザーが存在しないと不明なユーザーとして扱われます。そのため、データベースのユーザーマッピングしようとしてもエラーとなります。

解決方法

解消するには不明なユーザーと新環境でのユーザーの関連付けを行い修復する必要があります。

不明なユーザーを表示する

USE データベース名
EXEC sp_change_users_login 'Report'

ユーザーの修復方法

USE データベース名
EXEC sp_change_users_login 'Update_One', '不明なユーザー名', '新環境に存在するユーザー名'

トラブル時にリストア作業で時間を取られないためにも覚えておきたいですね。

参考サイト

-データベース
-

Copyright© 気になるボックス , 2016 AllRights Reserved Powered by AFFINGER4.