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を調べて
手順2:ミラーサーバーで同じSIDのユーザーを作成する
というふうになります。
参考
http://mssqlmirror.gyafuuuun.com/index.php/loginsid
他にも、ログインアカウントを転送するという技もあるようですが、コチラは試してません。
http://d.hatena.ne.jp/matu_tak/20091010/1255177628
多分出来ると思うのですが、プロシージャを使ってゴニョゴニョするようなので、ちょっと難しいと感じました。
本記事は、弊社代表のブログ記事なんでもIT屋の宿命からの記事を加筆修正したものです。
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屋の宿命からの記事を加筆修正したものです。
コメント
コメントを投稿