Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S'applique à :SQL Server
Permet de créer des points de terminaison et de définir leurs propriétés, ainsi que les méthodes à la disposition des applications clientes. Pour plus d’informations, consultez GRANT - Octroyer des autorisations sur un point de terminaison (Transact-SQL).
La syntaxe de l'instruction CREATE ENDPOINT peut être logiquement subdivisée en deux parties :
La première partie commence par AS et se termine avant la clause FOR.
Dans cette partie, vous fournissez des informations propres au protocole de transport (TCP), vous définissez un numéro de port d'écoute pour le point de terminaison et vous précisez la méthode d'authentification du point de terminaison et/ou une liste d'adresses IP (le cas échéant) que vous souhaitez empêcher d'accéder au point de terminaison.
La seconde partie commence par la clause FOR.
Dans cette partie, vous définissez la charge utile prise en charge sur le point de terminaison. La charge utile peut être de divers types parmi ceux pris en charge : Transact-SQL, Service Broker, mise en miroir de bases de données. Dans cette partie, vous préciserez également des informations propres à la langue.
Notes
Les services Web XML natifs (points de terminaison SOAP/HTTP) ont été supprimés dans SQL Server 2012 (11.x).
Conventions de la syntaxe Transact-SQL
Syntaxe
CREATE ENDPOINT endPointName [ AUTHORIZATION login ]
[ STATE = { STARTED | STOPPED | DISABLED } ]
AS { TCP } (
<protocol_specific_arguments>
)
FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (
<language_specific_arguments>
)
<AS TCP_protocol_specific_arguments> ::=
AS TCP (
LISTENER_PORT = listenerPort
[ [ , ] LISTENER_IP = ALL | ( xx.xx.xx.xx IPv4 address ) | ( '__:__1' IPv6 address ) ]
)
<FOR TSQL_language_specific_arguments> ::=
FOR TSQL (
[ ENCRYPTION = { NEGOTIATED | STRICT } ]
)
<FOR SERVICE_BROKER_language_specific_arguments> ::=
FOR SERVICE_BROKER (
[ AUTHENTICATION = {
WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
| CERTIFICATE certificate_name
| WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
| CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
} ]
[ [ , ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }
[ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ] }
]
[ [ , ] MESSAGE_FORWARDING = { ENABLED | DISABLED } ]
[ [ , ] MESSAGE_FORWARD_SIZE = forward_size ]
)
<FOR DATABASE_MIRRORING_language_specific_arguments> ::=
FOR DATABASE_MIRRORING (
[ AUTHENTICATION = {
WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
| CERTIFICATE certificate_name
| WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICATE certificate_name
| CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
[ [ [ , ] ] ENCRYPTION = { DISABLED | { { SUPPORTED | REQUIRED }
[ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ] }
]
[ , ] ROLE = { WITNESS | PARTNER | ALL }
)
Arguments
endPointName
Nom attribué pour le point de terminaison que vous créez. À utiliser lors de la mise à jour ou la suppression du point de terminaison.
Connexion d’autorisation
Indique une connexion SQL Server ou Windows valide qui détient l'objet de point de terminaison qui vient d'être créé. Si l’autorisation n’est pas spécifiée, par défaut, l’appelant devient propriétaire de l’objet nouvellement créé.
Pour affecter la propriété en spécifiant l’argument AUTHORIZATION, l’appelant doit bénéficier de la permission IMPERSONATE sur le login concerné.
L’option AUTHORIZATION n’est pas disponible dans ALTER ENDPOINT. La propriété ne peut être assignée que lorsque le point de terminaison est créé.
Pour réattribuer la propriété, reportez-vous à DROP ENDPOINT (Transact-SQL), puis revenez à cet article pour recréer le point de terminaison.
STATE = { STARTED | ARRÊTÉ | DISABLED }
État du point de terminaison lors de sa création. Si l’état n’est pas spécifié lors de la création du point de terminaison, ARRÊTÉ est la valeur par défaut.
STARTED
Le point de terminaison est lancé et écoute activement les connexions.
DISABLED
Le point de terminaison est désactivé. Dans cet état, le serveur écoute les requêtes du port mais renvoie des erreurs aux clients.
ARRÊTÉ
Le point de terminaison est arrêté. Dans cet état, le serveur n’écoute pas le port du point de terminaison ni ne répond à aucune tentative d’utilisation du point de terminaison.
Pour changer l’état, utilisez ALTER ENDPOINT (Transact-SQL).
AS { TCP }
Spécifie le protocole de transport à utiliser.
FOR { TSQL | SERVICE_BROKER | DATABASE_MIRRORING }
Spécifie le type de charge utile.
Actuellement, il n'existe pas d'argument Transact-SQL spécifique à une langue à passer au paramètre <language_specific_arguments>.
Option de protocole TCP
Les arguments suivants s'appliquent uniquement à l'option du protocole TCP.
LISTENER_PORT = listenerPort
Spécifie le numéro du port écouté pour les connexions par le protocole TCP/IP Service Broker. Par convention, 5022 est utilisé mais n’importe quel numéro entre 1024 et 32767 est valide.
LISTENER_IP = ALL | (4-part-ip) | ( « ip_address_v6 » )
Spécifie l'adresse IP que le point de terminaison va écouter. La valeur par défaut est ALL. Ce qui signifie que l'écouteur acceptera une connexion sur n'importe quelle adresse IP valide.
Si vous configurez la mise en miroir de bases de données avec une adresse IP au lieu d’un nom de domaine complet (ALTER DATABASE SET PARTNER = partner_IP_address ou ALTER DATABASE SET WITNESS = witness_IP_address), vous devez spécifier LISTENER_IP =IP_address au lieu de créer des points de terminaison de LISTENER_IP=ALL mise en miroir.
T-SQL Options
CHIFFREMENT = { NÉGOCIÉ | STRICT }
S’applique à : SQL Server 2022 (16.x) et versions ultérieures
Spécifie la façon dont le chiffrement est utilisé dans le processus. La valeur par défaut est NEGOTIATED pour des raisons de compatibilité.
NÉGOCIÉ
La façon dont la connexion est chiffrée est négociée entre le serveur et le client. La connexion réelle établie peut chiffrer :
- Message LOGIN7 uniquement.
- Tous les messages à l’exception de PRELOGIN.
- Tous les messages.
STRICT
Spécifie que tous les messages envoyés à ce point de terminaison doivent être chiffrés et que le certificat de secours ne serait pas présenté par le point de terminaison. Si l’en-tête TLS n’est pas le premier message, le serveur interrompt la connexion.
options SERVICE_BROKER et DATABASE_MIRRORING
Les arguments AUTHENTICATION et ENCRYPTION suivants sont communs aux options SERVICE_BROKER et DATABASE_MIRRORING.
Notes
Pour les options propres à SERVICE_BROKER, consultez la section « Options SERVICE_BROKER » ci-dessous. Pour les options propres à DATABASE_MIRRORING, consultez la section « Options DATABASE_MIRRORING » ci-dessous.
AUTHENTICATION = <authentication_options>
Indique les exigences d'authentification TCP/IP pour les connexions à ce point de terminaison. La valeur par défaut est WINDOWS.
Parmi les méthodes d'authentification prises en charge figurent NTLM et/ou Kerberos.
Important
Toutes les connexions de mise en miroir situées sur une instance du serveur utilisent un point de terminaison de mise en miroir de bases de données unique. Toutes les tentatives de création d'un autre point de terminaison de mise en miroir de bases de données échouent.
WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
Indique que le point de terminaison doit se connecter à l'aide du protocole d'authentification Windows pour authentifier les points de terminaison. Il s’agit de la valeur par défaut.
Si vous spécifiez une méthode d'autorisation (NTLM ou KERBEROS), cette méthode est utilisée en tant que protocole d'authentification. Avec la valeur par défaut, NEGOTIATE, le point de terminaison utilise le protocole de négociation Windows pour choisir NTLM ou Kerberos.
CERTIFICAT certificate_name
Indique que le point de terminaison doit authentifier la connexion à l’aide du certificat spécifié par l’argument certificate_name afin de déterminer l’identité requise pour l’autorisation. Le point de terminaison éloigné doit disposer d'un certificat dont la clé publique correspond à la clé privée du certificat spécifié.
WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ] CERTIFICAT certificate_name
Indique que le point de terminaison doit essayer de se connecter à l'aide de l'authentification Windows et qu'en cas d'échec, il doit essayer en utilisant le certificat spécifié.
CERTIFICATE certificate_name WINDOWS [ { NTLM | KERBEROS | NEGOTIATE } ]
Indique que le point de terminaison doit essayer de se connecter à l'aide du certificat spécifié et qu'en cas d'échec, il doit essayer en utilisant l'authentification Windows.
ENCRYPTION = { DISABLED | PRIS EN CHARGE | REQUIRED } [ ALGORITHM { AES | RC4 | AES RC4 | RC4 AES } ]
Spécifie si le chiffrement est utilisé dans le processus. La valeur par défaut est REQUIRED.
DISABLED
Spécifie que les données envoyées via une connexion ne sont pas chiffrées.
SUPPORTED
Spécifie que les données sont chiffrées uniquement si le point de terminaison opposé spécifie SUPPORTED ou REQUIRED.
REQUIRED
Indique que les connexions à ce point de terminaison doivent recourir au chiffrement. Par conséquent, pour se connecter à ce point de terminaison, un autre point de terminaison doit avoir l'argument ENCRYPTION défini sur SUPPORTED ou REQUIRED.
Vous pouvez éventuellement utiliser l'argument ALGORITHM pour spécifier le type de chiffrement utilisé par le point de terminaison, comme suit :
AES
Indique que le point de terminaison doit utiliser l'algorithme AES. Il s’agit de la valeur par défaut dans SQL Server 2016 (13.x) et versions ultérieures.
RC4
Indique que le point de terminaison doit utiliser l'algorithme RC4. Il s’agit de la valeur par défaut SQL Server 2014 (12.x).
Notes
L'algorithme RC4 est uniquement pris en charge pour des raisons de compatibilité descendante. Le nouveau matériel ne peut être chiffré à l'aide de RC4 ou de RC4_128 que lorsque la base de données se trouve dans le niveau de compatibilité 90 ou 100. (Non recommandé.) Utilisez à la place un algorithme plus récent, tel qu'un des algorithmes AES. Dans SQL Server 2012 (11.x) et versions ultérieures, le matériel chiffré à l’aide de RC4 ou de RC4_128 peut être déchiffré dans n’importe quel niveau de compatibilité.
AES RC4
Indique que les deux points de terminaison négocieront un algorithme de chiffrement avec ce point de terminaison, en donnant la préférence à l'algorithme AES.
RC4 AES
Indique que les deux points de terminaison négocieront un algorithme de chiffrement avec ce point de terminaison, en donnant la préférence à l'algorithme RC4.
Notes
L'algorithme RC4 est déconseillé. Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Nous vous recommandons d'utiliser AES.
Si les deux points de terminaison spécifient les deux algorithmes mais dans des ordres différents, le point de terminaison acceptant la connexion a le dernier mot.
SERVICE_BROKER Options
Les arguments suivants sont propres à l'option SERVICE_BROKER.
MESSAGE_FORWARDING = { ENABLED | DISABLED }
Détermine si les messages reçus par ce point de terminaison qui sont destinés à des services situés ailleurs seront transférés.
ENABLED
Transférer des messages si une adresse de transfert est disponible.
DISABLED
Annule les messages destinés à des services situés ailleurs. Il s’agit de la valeur par défaut.
MESSAGE_FORWARD_SIZE = forward_size
Indique l'espace de stockage maximal, en mégaoctets, à allouer au point de terminaison lors du stockage des messages à transférer.
DATABASE_MIRRORING Options
L'argument suivant est propre à l'option DATABASE_MIRRORING.
ROLE = { TÉMOIN | PARTENAIRE | ALL }
Spécifie le ou les rôles de mise en miroir de bases de données pris en charge par le point de terminaison.
WITNESS
Permet au point de terminaison de remplir le rôle de témoin dans le processus de mise en miroir de bases de données.
Notes
Pour l’édition SQL Server 2005 Express, WITNESS est la seule option disponible.
PARTNER
Permet au point de terminaison de remplir le rôle de partenaire dans le processus de mise en miroir de bases de données.
ALL
Permet au point de terminaison de remplir le rôle de témoin et de partenaire dans le processus de mise en miroir de bases de données.
Pour plus d’informations sur ces rôles, consultez Mise en miroir de bases de données (SQL Server).
Notes
Il n’existe aucun port par défaut pour DATABASE_MIRRORING.
Notes
Les instructions DDL ENDPOINT ne peuvent pas être exécutées à l’intérieur d’une transaction utilisateur. Les instructions ENDPOINT DDL ne échouent pas même si une transaction de niveau d’isolation d’instantané actif utilise le point de terminaison modifié.
Les requêtes peuvent être exécutées sur un ENDPOINT par :
Les membres du rôle serveur fixe sysadmin.
le propriétaire du point de terminaison ;
les utilisateurs ou groupes disposant de l'autorisation CONNECT sur le point de terminaison.
Autorisations
Requiert l'autorisation CREATE ENDPOINT ou l'appartenance au rôle serveur fixe sysadmin . Pour plus d’informations, consultez Autorisations de point de terminaison GRANT (Transact-SQL).
Exemple
Créer un point de terminaison de mise en miroir de bases de données
L'exemple suivant crée un point de terminaison pour la mise en miroir de bases de données. Le point de terminaison utilise le port numéro 7022, bien que tout numéro de port disponible convienne. Ce point est configuré en vue d'utiliser l'authentification Windows associée uniquement à Kerberos. L'option ENCRYPTION est paramétrée sur la valeur non définie par défaut SUPPORTED afin de prendre en charge les données chiffrées ou non. Le point de terminaison est configuré pour prendre en charge les rôles de partenaire et de témoin.
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 7022 )
FOR DATABASE_MIRRORING (
AUTHENTICATION = WINDOWS KERBEROS,
ENCRYPTION = SUPPORTED,
ROLE=ALL);
GO
Créer un point de terminaison qui pointe vers une adresse IPv4 et un port spécifiques
CREATE ENDPOINT ipv4_endpoint_special
STATE = STARTED
AS TCP (
LISTENER_PORT = 55555, LISTENER_IP = (10.0.75.1)
)
FOR TSQL ();
GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO public; -- Keep existing public permission on default endpoint for demo purpose
GRANT CONNECT ON ENDPOINT::ipv4_endpoint_special
TO login_name;
Créer un point de terminaison qui pointe vers une adresse IPv6 et un port spécifiques
CREATE ENDPOINT ipv6_endpoint_special STATE = STARTED AS TCP (
LISTENER_PORT = 55555,
LISTENER_IP = ('::1')
)
FOR TSQL();
GRANT CONNECT ON ENDPOINT::[TSQL Default TCP] TO PUBLIC;
GRANT CONNECT ON ENDPOINT::ipv6_endpoint_special TO PUBLIC;
Créer un point de terminaison avec un chiffrement strict
CREATE ENDPOINT [TDSSConnection]
STATE = STARTED
AS TCP
(LISTENER_PORT = 1433, LISTENER_IP = ALL)
FOR TSQL
(ENCRYPTION = STRICT ) ;
GO