SQL Server 2008 R2 ミラーリング構成のユーザーの作成方法 | ライタス株式会社
最近、SQL Serverを触る機会が増えてきました。 SQL Server 2008 R2でミラーリング構成を構築したのですが、 フェイルオーバーしたときに、ユーザー情報が追従しないため、 どのように設定すべきか、色々調べてみました。 そもそも、サーバーAとサーバーBでミラーリング構成を組んでいて、 同名のユーザーを作成しておけば、大丈夫だと思ってしまいます。 しかしながら、裏ではSIDというセキュリティIDというものを持っているらしく、同名のユーザーであっても、 厳密には、違うユーザーとして扱われるようです。 http://technet.microsoft.com/ja-jp/library/ms403629(v=sql.105).aspx では、ミラーリング構成でフェイルオーバーした後にも、同じログイン名を使うためには、 どうすればよいのかというと、答えは単純で、同じ名前で同じSIDを持つユーザーを作成しておけば、問題無いということになります。 手順としては、 手順1:プリンシバルのサーバーで作成したユーザーのSIDを調べて SELECT SID FROM master.sys.server_principals WHERE NAME = ‘USERNAME’ 手順2:ミラーサーバーで同じSIDのユーザーを作成する CREATE LOGIN USERNAME WITH PASSWORD = 'PASSWORD', SID = 0xXXXXXXXXXXX; go というふうになります。 参考 http://mssqlmirror.gyafuuuun.com/index.php/loginsid 他にも、ログインアカウントを転送するという技もあるようですが、コチラは試してません。 http://d.hatena.ne.jp/matu_tak/20091010/1255177628 多分出来ると思うのですが、プロシージャを使ってゴニョゴニョするようなので、ちょっと難しいと感じました。 本記事は、弊社代表のブログ記事 なんでもIT屋の宿命 からの記事を加筆修正したものです。