エンドポイントの実装
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics
エンドポイントは、要求をネイティブにリッスンできるサービスです。 SMO は、Endpoint オブジェクトを使用することで、さまざまな種類のエンドポイントをサポートしています。 Endpoint オブジェクトのインスタンスを作成し、そのプロパティを設定することで、特定のプロトコルを必要とする特定の種類のペイロードを処理するためのエンドポイント サービスを作成できます。
EndpointType オブジェクトの Endpoint プロパティを使用して、次の種類のペイロードの 1 つを指定することができます。
データベース ミラーリング
SOAP (SOAP エンドポイントのサポートは、SQL Server 2008 R2 (10.50.x) 以前のバージョンの SQL Server に存在します)
Service Broker
-
Transact-SQL
また、ProtocolType プロパティを使用して、サポートされている次の 2 つのプロトコルを指定することができます。
HTTP プロトコル
TCP プロトコル
ペイロードの種類を指定すると、Payload オブジェクト プロパティを使用して実際のペイロードを設定することができます。 Payload オブジェクト プロパティは、プロパティを変更できる、指定された種類のペイロード オブジェクトへの参照を提供します。
DatabaseMirroringPayload オブジェクトに対して、ミラーリング ロール、および暗号化が有効であるかどうかを指定する必要があります。 ServiceBrokerPayload オブジェクトには、メッセージ転送、許可される最大接続数、および認証モードに関する情報が必要です。 SoapPayloadMethod オブジェクトでは、さまざまなプロパティの設定が必要です。これには、クライアントが使用できる SOAP ペイロード メソッド (ストアド プロシージャおよびユーザー定義関数) を指定する、Add オブジェクト プロパティなどがあります。
Protocol オブジェクト プロパティを使用すると、ProtocolType プロパティで指定された型のプロトコル オブジェクトを参照して、実際のプロトコルを設定することができます。 HttpProtocol オブジェクトには、制限された IP アドレス、ポート、Web サイト、および認証情報のリストが必要です。 また、TcpProtocol オブジェクトには、制限された IP アドレスおよびポート情報のリストも必要です。
エンドポイントを作成して定義を完了したら、データベース ユーザー、グループ、ロール、およびログオンに対して、アクセスの許可、取り消し、および拒否を行うことができます。
例
次のコード例では、アプリケーションを作成するプログラミング環境、プログラミング テンプレート、およびプログラミング言語を選択する必要があります。 詳細については、「 Visual Studio .NET で Visual C# SMO プロジェクトを作成するを参照してください。
Visual Basic でのデータベース ミラーリング エンドポイント サービスの作成
コード例では、SMO でデータベース ミラーリング エンドポイントを作成する方法を示します。 これは、データベース ミラーを作成する前に必要な操作です。 IsMirroringEnabled オブジェクトの Database プロパティおよびその他のプロパティを使用して、データベース ミラーを作成します。
'Set up a database mirroring endpoint on the server before setting up a database mirror.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Define an Endpoint object variable for database mirroring.
Dim ep As Endpoint
ep = New Endpoint(srv, "Mirroring_Endpoint")
ep.ProtocolType = ProtocolType.Tcp
ep.EndpointType = EndpointType.DatabaseMirroring
'Specify the protocol ports.
ep.Protocol.Http.SslPort = 5024
ep.Protocol.Tcp.ListenerPort = 6666
'Specify the role of the payload.
ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All
'Create the endpoint on the instance of SQL Server.
ep.Create()
'Start the endpoint.
ep.Start()
Console.WriteLine(ep.EndpointState)
Visual C# でのデータベース ミラーリング エンドポイント サービスの作成
コード例では、SMO でデータベース ミラーリング エンドポイントを作成する方法を示します。 これは、データベース ミラーを作成する前に必要な操作です。 IsMirroringEnabled オブジェクトの Database プロパティおよびその他のプロパティを使用して、データベース ミラーを作成します。
{
//Set up a database mirroring endpoint on the server before
//setting up a database mirror.
//Connect to the local, default instance of SQL Server.
Server srv = new Server();
//Define an Endpoint object variable for database mirroring.
Endpoint ep = default(Endpoint);
ep = new Endpoint(srv, "Mirroring_Endpoint");
ep.ProtocolType = ProtocolType.Tcp;
ep.EndpointType = EndpointType.DatabaseMirroring;
//Specify the protocol ports.
ep.Protocol.Http.SslPort = 5024;
ep.Protocol.Tcp.ListenerPort = 6666;
//Specify the role of the payload.
ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All;
//Create the endpoint on the instance of SQL Server.
ep.Create();
//Start the endpoint.
ep.Start();
Console.WriteLine(ep.EndpointState);
}
PowerShell でのデータベース ミラーリング エンドポイント サービスの作成
コード例では、SMO でデータベース ミラーリング エンドポイントを作成する方法を示します。 これは、データベース ミラーを作成する前に必要な操作です。 IsMirroringEnabled オブジェクトの Database プロパティおよびその他のプロパティを使用して、データベース ミラーを作成します。
# Set the path context to the local, default instance of SQL Server.
CD \sql\localhost\
$srv = get-item default
#Get a new endpoint to congure and add
$ep = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Endpoint -argumentlist $srv,"Mirroring_Endpoint"
#Set some properties
$ep.ProtocolType = [Microsoft.SqlServer.Management.SMO.ProtocolType]::Tcp
$ep.EndpointType = [Microsoft.SqlServer.Management.SMO.EndpointType]::DatabaseMirroring
$ep.Protocol.Http.SslPort = 5024
$ep.Protocol.Tcp.ListenerPort = 6666 #inline comment
$ep.Payload.DatabaseMirroring.ServerMirroringRole = [Microsoft.SqlServer.Management.SMO.ServerMirroringRole]::All
# Create the endpoint on the instance
$ep.Create()
# Start the endpoint
$ep.Start()
# Report its state
$ep.EndpointState;