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