https://kobarin.hateblo.jp/entry/20100401/1270097816
SQL Server にはユーザが2種類ある。
・データベースユーザー…SSMSの[DB]-[セキュリティ]-[ユーザ]内にあるアカウント
・SQL Serverログイン…SSMSの[セキュリティ]-[ログイン]内にあるアカウント
ユーザは名前ではなく内部的なIDによって管理されているため、例えば本番環境のバックアップからテスト環境に復元したDBのデータベースユーザ「HogeUser」は、テスト環境に存在するSQL Serverログイン「HogeUser」とは別ものとして扱われる。
そのためテスト環境のHogeUserでSQLServerにログインしても、復元したDBにアクセスすることができない。
対策として以下T-SQLを実行することで、再マッピングが可能。
use
;
EXEC sp_change_users_login 'Update_One','',' '
GO
SQL Server Management Studio の
・DB > セキュリティ > ユーザ > 目的ユーザ > (右クリック)削除
・セキュリティ > ログイン > 目的ユーザ > (右クリック)プロパティ > ユーザーマッピング
で設定してもいける。