Windows 認証でのデータベース ミラーリング エンドポイントの作成 (Transact-SQL)
このトピックでは、Transact-SQL を使用して SQL Server 2014 で Windows 認証を使用するデータベース ミラーリング エンドポイントを作成する方法について説明します。 データベース ミラーリングまたは Always On 可用性グループをサポートするには、SQL Server の各インスタンスにデータベース ミラーリング エンドポイントが必要です。 サーバー インスタンスは、単一のポートを備えたデータベース ミラーリング エンドポイントを 1 つだけ持つことができます。 データベース ミラーリング エンドポイントは、作成される際に、ローカル システムで利用できる任意のポートを使用できます。 サーバー インスタンス上のすべてのデータベース ミラーリング セッションはそのポートでリッスンし、データベース ミラーリングに対するすべての着信接続はそのポートを使用します。
重要
データベース ミラーリング エンドポイントが存在し、既に使用されている場合、そのエンドポイントを使用することをお勧めします。 使用中のエンドポイントを削除すると、既存のセッションが切断されます。
このトピックの内容
始める前に: セキュリティ
次の対象を使用してデータベース ミラーリング エンドポイントを作成するには: Transact-SQL
始める前に
セキュリティ
サーバー インスタンスの認証方法と暗号化方法は、システム管理者が設定します。
重要
RC4 アルゴリズムは非推奨とされます。 この機能は、Microsoft SQL Server の将来のバージョンで削除されます。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。 AES を使用することをお勧めします。
アクセス許可
CREATE ENDPOINT 権限、または sysadmin 固定サーバー ロールのメンバーシップが必要です。 詳細については、「GRANT (エンドポイントの権限の許可) (Transact-SQL)」を参照してください。
Transact-SQL の使用
Windows 認証を使用するデータベース ミラーリング エンドポイントを作成するには
データベース ミラーリング エンドポイントを作成する SQL Server のインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次のステートメントを使用して、データベース ミラーリング エンドポイントが既に存在するかどうかを判断します。
SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints;
重要
サーバー インスタンスにデータベース ミラーリング エンドポイントが既に存在する場合、サーバー インスタンス上に確立する他のセッションにそのエンドポイントが使用されます。
Transact-SQL を使用して、Windows 認証を使用するエンドポイントを作成するには、CREATE ENDPOINT ステートメントを使用します。 ステートメントは、通常、次のような形式になります。
CREATE ENDPOINT <endpointName>
STATE=STARTED
AS TCP ( LISTENER_PORT = <listenerPortList> )
FOR DATABASE_MIRRORING
(
[ AUTHENTICATION = WINDOWS [ <authorizationMethod> ]
]
[ [,] ENCRYPTION = REQUIRED
[ ALGORITHM { <algorithm> } ]
]
[,] ROLE = <role>
)
where
<endpointName> は、サーバー インスタンスのデータベース ミラーリング エンドポイントの一意名です。
STARTED によって、エンドポイントが開始され、接続のリッスンが開始されることを指定します。 データベース ミラーリング エンドポイントは、通常、STARTED 状態で作成されます。 STOPPED 状態 (既定) または DISABLED 状態でセッションを開始することもできます。
<listenerPortList> は、サーバーがデータベース ミラーリング メッセージをリッスンする単一のポート番号 (nnnn) です。 TCP のみ使用できます。他のプロトコルを指定するとエラーが発生します。
ポート番号は、コンピューター システムにつき 1 つだけ使用できます。 データベース ミラーリング エンドポイントは、作成される際に、ローカル システムで利用できる任意のポートを使用できます。 システムの TCP エンドポイントによって現在使用されているポートを識別するには、次の Transact-SQL ステートメントを使用します。
SELECT name, port FROM sys.tcp_endpoints;
重要
各サーバー インスタンスには、一意のリスナー ポートが 1 つだけ必要です。
Windows 認証の場合、エンドポイントで接続の認証に NTLM または Kerberos だけを使用する場合を除き、AUTHENTICATION オプションは省略可能です。 <authorizationMethod> では、NTLM、KERBEROS、NEGOTIATE のいずれかで、接続の認証に使用する方法を指定します。 既定値の NEGOTIATE を使用すると、エンドポイントでは、使用する Windows ネゴシエーション プロトコルに NTLM または Kerberos のいずれかが選択されます。 ネゴシエーションでは、相手側のエンドポイントの認証レベルに応じて、認証ありまたは認証なしの接続が可能になります。
既定では、ENCRYPTION は REQUIRED に設定されます。 これは、このエンドポイントへのすべての接続に暗号化を使用する必要があることを意味します。 ただし、エンドポイントで暗号化を無効にしたり、オプションにできます。 選択肢は次のとおりです。
値 定義 DISABLED 接続を経由して送信されたデータが暗号化されないことを指定します。 SUPPORTED 反対側のエンドポイントで SUPPORTED または REQUIRED が指定されている場合に限り、データを暗号化することを指定します。 REQUIRED 接続を経由して送信されるデータを暗号化する必要があることを示します。 あるエンドポイントで暗号化が必要な場合は、他のエンドポイントで ENCRYPTION が SUPPORTED または REQUIRED に設定されている必要があります。
<algorithm> には、エンドポイントの暗号化標準を指定するオプションが用意されています。 <algorithm> の値は、RC4、AES、AES RC4、または RC4 AES の各アルゴリズムのいずれかまたはそれらの組み合わせになります。
AES RC4 では、エンドポイントが暗号化アルゴリズムのネゴシエートを行う際に、AES アルゴリズムを優先することが示されます。 RC4 AES では、エンドポイントが暗号化アルゴリズムのネゴシエートを行う際に、RC4 アルゴリズムを優先することが示されます。 両方のエンドポイントで両方のアルゴリズムを異なる順序で指定した場合、接続を受け入れた方のエンドポイントが優先されます。
Note
RC4 アルゴリズムは非推奨とされます。 この機能は、Microsoft SQL Server の将来のバージョンで削除されます。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。 AES を使用することをお勧めします。
<role> では、サーバーで実行できるロールが定義されます。 ROLE の指定は必須です。 ただし、エンドポイントのロールが適用されるのは、データベース ミラーリングの場合のみです。 Always On 可用性グループの場合、エンドポイントのロールは無視されます。
サーバー インスタンスが、あるデータベース ミラーリング セッションではあるロールを使用し、他のセッションでは別のロールを使用できるようにするには、ROLE=ALL を指定します。 パートナーまたはミラーリング監視サーバーのいずれかになるようにサーバー インスタンスを制限するには、ROLE=PARTNER または ROLE=WITNESS をそれぞれ指定します。
Note
SQL Server の各エディションのデータベース ミラーリング オプションの詳細については、「 Features Supported by the editions of SQL Server 2014」を参照してください。
CREATE ENDPOINT 構文の詳細な説明については、「CREATE ENDPOINT (Transact-SQL)」を参照してください。
注意
既存のエンドポイントを変更するには、ALTER ENDPOINT (Transact-SQL) を使用します。
例: データベース ミラーリングをサポートするエンドポイントの作成 (Transact-SQL)
次の例では、3 台の異なるコンピューター システムに既定のサーバー インスタンスのデータベース ミラーリング エンドポイントを作成します。
サーバー インスタンスの役割 | ホスト コンピューター名 |
---|---|
パートナー (初期はプリンシパル) | SQLHOST01\. |
パートナー (初期はミラー) | SQLHOST02\. |
ミラーリング監視サーバー | SQLHOST03\. |
この例では、3 つのエンドポイントすべてでポート番号 7022 を使用しますが、利用可能なポート番号であればどれでも使用できます。 エンドポイントでは既定の Windows 認証を使用するので、AUTHENTICATION オプションは不要です。 エンドポイントはいずれも Windows 認証の既定動作に従い接続のための認証方法をネゴシエートする仕様なので、ENCRYPTION オプションも不要です。 また、すべてのエンドポイントで、既定動作に従い暗号化が必要です。
各サーバー インスタンスは、パートナーまたはミラーリング監視サーバーのいずれかとしてのみ機能するように制限します。各サーバーのエンドポイントは役割を明示 (ROLE=PARTNER または ROLE=WITNESS) します。
重要
各サーバー インスタンスにはエンドポイントを 1 つしか作成できません。 したがって、1 つのサーバー インスタンスをセッションによってパートナーにしたりミラーリング監視サーバーにしたりする場合は、ROLE=ALL を指定します。
--Endpoint for initial principal server instance, which
--is the only server instance running on SQLHOST01.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for initial mirror server instance, which
--is the only server instance running on SQLHOST02.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);
GO
--Endpoint for witness server instance, which
--is the only server instance running on SQLHOST03.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (ROLE=WITNESS);
GO
Related Tasks
データベース ミラーリング エンドポイントを構成するには
データベース ミラーリング エンドポイントに関する情報を表示するには
参照
ALTER ENDPOINT (Transact-SQL)
暗号化アルゴリズムの選択
CREATE ENDPOINT (Transact-SQL)
サーバー ネットワーク アドレスの指定 (データベース ミラーリング)
Windows 認証を使用したデータベース ミラーリングの設定の例 (Transact-SQL)
データベース ミラーリング エンドポイント (SQL Server)