[SQL Server] ミラーリング関連DBアカウントを作成時に注意事項及びDBアカウント作成SQL

inno
2017-10-24 14:50 1113 0
ミラーリング関連サービス用DBアカウントを作成する時に注意しないと行けない部分があります。
Failoverした時にミラーリングサーバーの復元中だったデータベースが有効化されますが、
DBアカウントのサーバーロールが「public」の場合、データベースに以下のSQLを実行してマッピングをしないといけません。


DBアカウントが「test」の場合、

sp_change_users_login 'Update_one', 'test', 'test' 


ですが、最初からDBアカウントのSIDを両サーバー合わせておけば特に問題なくサービスが可能になります。
サービス用のDBアカウントを「test」の場合を仮定して説明します。

プリンシパル サーバーから以下のSQLを実行してsidを確認します。

SELECT * FROM sys.server_principals

実行結果


実行結果には「test」DBアカウントのsidは「0x2DC6BE22B74DC549BCAA6E34AE96B33B」です。
では、ミラー サーバーで「test」DBアカウントを作成する時には以下のように記入して実行します。

CREATE LOGIN test WITH PASSWORD = 'testpassword', SID = 0x2DC6BE22B74DC549BCAA6E34AE96B33B

もちろんパスワードはプリンシパル サーバーと同じパスワードを設定してください。
同じSIDでアカウントを作成することでミラーサーバーでのユーザーマッピング問題を解決できます。

コメント