Windows 認証でのデータベース ミラーリング エンドポイントの作成 (Transact-SQL)
このトピックでは、SQL Server 2012 に、Windows 認証を使用するデータベース ミラーリング エンドポイントを Transact-SQL で作成する方法について説明します。 データベース ミラーリングまたは AlwaysOn 可用性グループ をサポートするには、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>
)
パラメーターの説明
<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 アルゴリズムを優先することが示されます。 両方のエンドポイントで両方のアルゴリズムを異なる順序で指定した場合、接続を受け入れた方のエンドポイントが優先されます。
注 RC4 アルゴリズムは推奨されません。 この機能は、Microsoft SQL Server の将来のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。AES を使用することをお勧めします。
<role> では、サーバーが実行できるロールが定義されます。 ROLE の指定は必須です。 ただし、エンドポイントのロールが適用されるのは、データベース ミラーリングの場合のみです。 AlwaysOn 可用性グループでは、エンドポイントのロールが無視されます。
サーバー インスタンスが、あるデータベース ミラーリング セッションではあるロールを使用し、他のセッションでは別のロールを使用できるようにするには、ROLE=ALL を指定します。 パートナーまたはミラーリング監視サーバーのいずれかになるようにサーバー インスタンスを制限するには、ROLE=PARTNER または ROLE=WITNESS をそれぞれ指定します。
注 SQL Server の各エディションでサポートされるデータベース ミラーリング オプションの詳細については、「SQL Server 2012 の各エディションがサポートする機能」(https://go.microsoft.com/fwlink/?linkid=232473) を参照してください。
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
[先頭に戻る]
関連タスク
データベース ミラーリング エンドポイントを構成するには
データベース ミラーリング エンドポイントに関する情報を表示するには
[先頭に戻る]
関連項目
参照
CREATE ENDPOINT (Transact-SQL)
概念
サーバー ネットワーク アドレスの指定 (データベース ミラーリング)