2016年6月23日木曜日

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屋の宿命からの記事を加筆修正したものです。

0 件のコメント:

コメントを投稿