2 つのサーバー インスタンスが互いの データベース ミラーリング エンドポイント ポイントに接続するには、各インスタンスのログイン アカウントがもう一方のインスタンスにアクセスする必要があります。 また、各ログイン アカウントには、他のインスタンスのデータベース ミラーリング エンドポイントへの接続アクセス許可が必要です。
この要件の影響は、サーバー インスタンスが同じドメイン ユーザー アカウントとして実行されているかどうかによって異なります。
サーバー インスタンスが同じドメイン ユーザー アカウントとして実行されている場合、両方の マスター データベースに正しいユーザー ログインが自動的に存在します。 これにより、データベース ミラーリングと AlwaysOn 可用性グループのセキュリティ構成が簡略化されます。
サーバー インスタンスが異なるユーザー アカウントとして実行される場合、プリンシパル サーバーまたはプライマリ レプリカをホストするサーバー インスタンス上のユーザー ログインは、ミラー サーバーをホストするサーバー インスタンスまたはセカンダリ レプリカをホストするすべてのサーバー インスタンスで手動で再現する必要があります。 詳細については、このトピックで後述する「 別のアカウントのログインを作成 し、 接続アクセス許可を付与する」を参照してください。
重要
より安全な環境を作成するには、サーバー インスタンスごとに個別のドメイン アカウントを使用することを検討してください。
別のアカウントのログインを作成する
2 つのサーバー インスタンスが異なるアカウントとして実行される場合、システム管理者は CREATE LOGIN Transact-SQL ステートメントを使用して、各サーバー インスタンスのリモート インスタンスのスタートアップ サービス アカウントのログインを作成する必要があります。 詳細については、「CREATE LOGIN (Transact-SQL)」を参照してください。
重要
ドメイン以外のアカウントで SQL Server を実行する場合は、証明書を使用する必要があります。 詳しくは、「データベース ミラーリング エンドポイントでの証明書の使用 (Transact-SQL)」をご覧ください。
たとえば、loginA で実行されるサーバー インスタンス sqlA が loginB で実行されるサーバー インスタンス sqlB に接続するには、loginA が sqlB に存在し、loginB が sqlA に存在する必要があります。 さらに、ミラーリング監視サーバー インスタンス (sqlC) を含み、3 つのサーバー インスタンスが異なるドメイン アカウントで実行されるデータベース ミラーリング セッションでは、次のログインを作成する必要があります。
インスタンスの場合... | ログインを作成し、... への接続アクセス許可を付与します。 |
---|---|
sqlA | sqlB と sqlC |
sqlB | sqlA と sqlC |
sqlC | sqlA と sqlB |
注
ドメイン ユーザーではなくマシン アカウントを使用して、ネットワーク サービス アカウントに接続できます。 マシン アカウントを使用する場合は、他のサーバー インスタンスにユーザーとして追加する必要があります。
接続アクセス許可を付与する
サーバー インスタンスにログインが作成されたら、サーバー インスタンスのデータベース ミラーリング エンドポイントに接続するためのアクセス許可をログインに付与する必要があります。 システム管理者は、GRANT Transact-SQL ステートメントを使用して接続アクセス許可を付与します。 詳細については、「GRANT (Transact-SQL)」を参照してください。
関連タスク
こちらもご覧ください
データベース ミラーリング エンドポイント (SQL Server)
データベース ミラーリング構成のトラブルシューティング (SQL Server)
AlwaysOn 可用性グループの構成のトラブルシューティング (SQL Server)