Implémentation de points de terminaison
Un point de terminaison est un service qui peut écouter les requêtes en mode natif. SMO prend en charge différents types de points de terminaison en utilisant l'objet Endpoint. Vous pouvez créer un service de point de terminaison qui gère un type spécifique de charge utile, qui utilise un protocole spécifique, en créant une instance d'un objet Endpoint et en définissant ses propriétés.
La propriété EndpointType de l'objet Endpoint peut être utilisée pour spécifier l'un des types de charge utile suivants :
Mise en miroir d'une base de données
SOAP
Service Broker
Transact-SQL
En outre, la propriété ProtocolType peut être utilisée pour spécifier les deux protocoles pris en charge suivants :
Protocole HTTP
Protocole TCP
Après avoir précisé le type de charge utile, il est possible de définir la charge utile réelle à l'aide de la propriété d'objet Payload. La propriété d'objet Payload fournit une référence vers un objet de charge utile du type spécifié, dont les propriétés peuvent être modifiées.
Pour l'objet DatabaseMirroringPayload, vous devez spécifier le rôle de mise en miroir et si le chiffrement est activé. L'objet ServiceBrokerPayload requiert des informations à propos du transfert de messages, du nombre maximal de connexions autorisé et du mode d'authentification. L'objet SoapPayloadMethod requiert la définition de différentes propriétés, notamment la propriété d'objet Add qui spécifie les méthodes de charge utile SOAP disponibles pour les clients (procédures stockées et fonctions définies par l'utilisateur).
De la même façon, le protocole réel peut être défini à l'aide de la propriété d'objet Protocol qui référence un objet de protocole du type spécifié par propriété ProtocolType. L'objet HttpProtocol requiert une liste d'adresses IP restreintes, ainsi que des informations sur le port, le site Web et l'authentification. L'objet TcpProtocol requiert également une liste d'adresses IP restreintes, ainsi que des informations sur le port.
Lorsque le point de terminaison a été créé et complètement défini, l'accès peut être accordé, révoqué ou refusé aux utilisateurs, groupes, rôles et ouvertures de session de la base de données.
Exemple
Dans l'exemple de code suivant, vous devez sélectionner l'environnement, le modèle et le langage de programmation à utiliser pour créer votre application. Pour plus d'informations, consultez Procédure : créer un projet SMO Visual Basic dans Visual Studio .NET et Procédure : créer un projet SMO Visual C# dans Visual Studio .NET.
Création d'un service de point de terminaison de mise en miroir de bases de données en Visual Basic
L'exemple de code montre comment créer un point de terminaison pour la mise en miroir de bases de données dans SMO. Cette étape est requise avant la création du miroir de base de données. Utilisez la propriété IsMirroringEnabled et d'autres propriétés sur l'objet Database pour créer un miroir de base de données.
'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)
Création d'un service de point de terminaison de mise en miroir de bases de données en Visual C#
L'exemple de code montre comment créer un point de terminaison pour la mise en miroir de bases de données dans SMO. Cette étape est requise avant la création du miroir de base de données. Utilisez la propriété IsMirroringEnabled et d'autres propriétés sur l'objet Database pour créer un miroir de base de données.
{
//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);
}
Création d'un service de point de terminaison de mise en miroir de bases de données dans PowerShell
L'exemple de code montre comment créer un point de terminaison pour la mise en miroir de bases de données dans SMO. Cette étape est requise avant la création du miroir de base de données. Utilisez la propriété IsMirroringEnabled et d'autres propriétés sur l'objet Database pour créer un miroir de base de données.
# 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;