CREATE ENDPOINT (Transact-SQL)

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 sur les autorisations afférentes, consultez GRANT – octroi d'autorisations de 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 ou HTTP), 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 qui sont pris en charge : SOAP, Transact-SQL, Service Broker, mise en miroir de bases de données. Dans cette partie, vous préciserez également des informations propres à la langue. Par exemple, si vous utilisez HTTP SOAP, vous identifiez les procédures à exposer dans le point de terminaison en tant que méthodes Web. Pour chaque méthode Web, vous identifiez une procédure stockée SQL Server correspondante ou une fonction définie par l'utilisateur à laquelle elle est mappée. Une application cliente peut envoyer des requêtes HTTP SOAP qui appellent ces méthodes dans le point de terminaison. Vous pouvez également fournir des données de configuration SOAP supplémentaires, par exemple :

    • autoriser ou non les demandes de requête ad hoc ;

    • renvoyer ou non le schéma XSD pour le jeu de résultats ;

    • le contexte de base de données dans lequel les méthodes demandées sont exécutées ;

    • l'espace de noms du point de terminaison ;

    • le mode de traitement des caractères non valides en XML dans le résultat.

Notes

Les Services Web XML natifs (points de terminaison SOAP/HTTP) sont déconseillés. Pour plus d'informations, consultez Services Web XML natifs : déconseillés dans SQL Server 2008.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

CREATE ENDPOINT endPointName [ AUTHORIZATION login ]
[ STATE = { STARTED | STOPPED | DISABLED } ]
AS { HTTP | TCP } (
   <protocol_specific_arguments>
        )
FOR { SOAP | TSQL | SERVICE_BROKER | DATABASE_MIRRORING } (
   <language_specific_arguments>
        )<AS HTTP_protocol_specific_arguments> ::=
AS HTTP (
  PATH = 'url', AUTHENTICATION = ( { BASIC | DIGEST | INTEGRATED | NTLM | KERBEROS } [ ,...n ] ), PORTS =( { CLEAR | SSL} [ ,... n ] )
  [ SITE = {'*' | '+' | 'webSite' },]
  [ [ , ] CLEAR_PORT =clearPort ]
  [ [ , ] SSL_PORT =SSLPort ]
  [ [ , ] AUTH_REALM = { 'realm' | NONE } ]
  [ [ , ] DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
  [ [ , ] COMPRESSION = { ENABLED | DISABLED } ]
  )<AS TCP_protocol_specific_arguments> ::=
AS TCP (
  LISTENER_PORT =listenerPort
  [ [ , ] LISTENER_IP = ALL | (4-part-ip ) | ( "ip_address_v6" ) ]

)<FOR SOAP_language_specific_arguments> ::=
FOR SOAP(
  [ { WEBMETHOD [ 'namespace'.] 'method_alias'(   NAME ='database.schema.name'
      [ [ , ] SCHEMA = { NONE | STANDARD | DEFAULT } ]
      [ [ , ] FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
    )  
  } [ ,...n ] ]
  [ [ , ] BATCHES = { ENABLED | DISABLED } ]
  [ [ , ] WSDL = { NONE | DEFAULT | 'sp_name' } ]
  [ [ , ] SESSIONS = { ENABLED | DISABLED } ]
  [ [ , ] LOGIN_TYPE = { MIXED | WINDOWS } ]
  [ [ , ] SESSION_TIMEOUT =timeoutInterval | NEVER ]
  [ [ , ] DATABASE = { 'database_name' | DEFAULT }
  [ [ , ] NAMESPACE = { 'namespace' | DEFAULT } ]
  [ [ , ] SCHEMA = { NONE | STANDARD } ]
  [ [ , ] CHARACTER_SET = { SQL | XML } ]
  [ [ , ] HEADER_LIMIT = int ]
        )
        <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 { RC4 | AES | 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 { RC4 | AES | AES RC4 | RC4 AES } ] } 

    ] 
   [ , ] ROLE = { WITNESS | PARTNER | ALL }
)

Arguments

  • endPointName
    Correspond au nom affecté au point de terminaison que vous créez. À utiliser lors de la mise à jour ou la suppression du point de terminaison.

  • AUTHORIZATION login
    Indique une connexion SQL Server ou Windows valide qui détient l'objet de point de terminaison qui vient d'être créé. Si l'argument AUTHORIZATION n'est pas spécifié, l'appelant devient, par défaut, le propriétaire de l'objet qui vient d'être 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é.

    Pour réaffecter la propriété, consultez ALTER ENDPOINT (Transact-SQL).

  • STATE = { STARTED | STOPPED | DISABLED }
    Correspond à l'état du point de terminaison lors de sa création. Si l'état n'est pas précisé lors de la création du point de terminaison, STOPPED 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 retourne des erreurs aux clients.

    • STOPPED
      Le point de terminaison est arrêté. Dans cet état, le serveur n'écoute pas le port du point de terminaison et ne répond à aucune tentative de requête visant l'utilisation du point de terminaison.

    Pour modifier l'état, utilisez ALTER ENDPOINT (Transact-SQL).

  • AS { HTTP | TCP }
    Spécifie le protocole de transport à utiliser.

  • FOR { SOAP | 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>.

    Les Services Web XML natifs (points de terminaison SOAP/HTTP) sont déconseillés. Pour plus d'informations, consultez Services Web XML natifs : déconseillés dans SQL Server 2008.

Option protocole HTTP

Les arguments suivants s'appliquent uniquement à l'option du protocole HTTP.

  • PATH = 'url'
    Spécifie l'URL qui identifie l'emplacement du point de terminaison sur l'ordinateur hôte mentionné dans l'argument SITE. PATH correspond à un partitionnement logique de l'espace de noms URL utilisé par l'écouteur pour acheminer correctement les requêtes. PATH doit faire partie de l'URL utilisée par le client pour envoyer des requêtes HTTP SOAP à une instance de SQL Server. Par exemple, dans l'URL https://ServerName/Sql, ServerName correspond à l'ordinateur hôte spécifié par l'argument SITE et /Sql équivaut à l'URL spécifiée par l'argument PATH.

  • AUTHENTICATION = ( { BASIC | DIGEST | NTLM | KERBEROS | INTEGRATED } [ ,...n ] )
    Indique le type d'authentification utilisé pour authentifier les utilisateurs qui se connectent à une instance de SQL Server. Vous avez le choix entre BASIC, DIGEST, NTLM, KERBEROS ou INTEGRATED, ou une combinaison de ces valeurs séparées par des virgules (,). Pour plus d'informations, consultez Types d'authentification du point de terminaison.

  • PORTS**=(** { CLEAR | SSL} [ ,... n ] )
    Spécifie un ou plusieurs types de ports d'écoute associés au point de terminaison. CLEAR et SSL ne peuvent pas être spécifiés simultanément. Si seul CLEAR est spécifié, les requêtes entrantes doivent utiliser HTTP. Si SSL est spécifié, il doit s'agir de requêtes Secure HTTP (https://).

  • [ SITE = { ' * ' | ' + ' | 'webSite' } ]
    Indique le nom de l'ordinateur hôte. Si l'argument SITE est omis, l'astérisque est la valeur par défaut. Si sp_reserve_http_namespace a été exécuté, transmettez <hostpart> au mot clé SITE. Par exemple, si sp_reserve_http_namespace N'http://MyServer:80/sql' a été exécuté, spécifiez SITE='MyServer' dans l'instruction CREATE ENDPOINT.

    • * (astérisque)
      Implique qu'une opération d'écoute s'applique à tous les noms d'hôtes possibles pour l'ordinateur qui ne sont pas explicitement réservés ailleurs.

    • + (signe plus)
      Implique qu'une opération d'écoute s'applique à tous les noms d'hôtes possibles pour l'ordinateur.

    • webSite
      Il s'agit du nom d'hôte de l'ordinateur.

  • [ CLEAR_PORT **=**clearPort ]
    Indique le numéro de port CLEAR. Si PORTS = (CLEAR), l'argument clearPort spécifie le numéro de port clear. Le numéro de port par défaut est 80.

  • [ SSL_PORT**=**SSLPort ]
    Indique le numéro de port SSL. Si PORTS = (SSL), l'argument SSLPort spécifie le numéro de port SSL. Le numéro de port SSL par défaut est 443.

  • [ AUTH_REALM = { 'realm' | NONE } ]
    Si AUTHENTICATION = DIGEST, cet argument spécifie l'indicateur renvoyé au client, qui envoie la requête SOAP au point de terminaison, dans le cadre de l'authentification HTTP. La valeur par défaut est NONE.

  • [ DEFAULT_LOGON_DOMAIN = { 'domain' | NONE } ]
    Si AUTHENTICATION = BASIC, cet argument spécifie le domaine de connexion par défaut. La valeur par défaut est NONE.

  • [ COMPRESSION = { ENABLED | DISABLED } ]
    Si cet argument a la valeur ENABLED, SQL Server répond aux requêtes qui acceptent l'encodage gzip et renvoie des réponses compressées. Par exemple, si une requête arrive avec un en-tête HTTP qui spécifie que GZIP est un encodage valide, le serveur renvoie la réponse encodée en gzip. La valeur par défaut est DISABLED.

Option 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, 4022 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 LISTENER_IP=ALL lorsque vous créez des points de terminaison de mise en miroir.

Arguments SOAP

Les arguments suivants sont propres à l'option SOAP.

Notes

Les Services Web XML natifs (points de terminaison SOAP/HTTP) sont déconseillés. Pour plus d'informations, consultez Services Web XML natifs : déconseillés dans SQL Server 2008.

  • [ WEBMETHOD [ 'namespace' .] 'method_alias' ]
    Spécifie une méthode pour l'envoi de requêtes HTTP SOAP à un point de terminaison. Chaque clause WEBMETHOD décrit une méthode, mais plusieurs méthodes peuvent être exposées pour le point de terminaison. Si namespace n'est pas spécifié, c'est l'espace de noms du point de terminaison qui est pris en compte.

    Vous pouvez créer un point de terminaison sans méthodes, puis utiliser ALTER ENDPOINT pour lui en ajouter.

    Important

    Lorsque vous utilisez WEBMETHOD pour exposer des méthodes, vous devez vous assurer de l'absence de noms dupliqués si un même point de terminaison HTTP dessert plusieurs bases de données SQL Server. Pour éviter ce problème, pensez à ajouter l'URL de votre nom de domaine inscrit dans le chemin d'accès de l'espace de noms.

  • NAME ='database.schema.name'
    Spécifie le nom d'une procédure stockée ou d'une fonction définie par l'utilisateur qui correspond à la méthode SOAP indiquée dans WEBMETHOD. database**.schema.name doit être un nom en trois parties conforme aux règles des identificateurs. Si database.schema.**name n'existe pas, le système renvoie un avertissement mais l'opération DDL aboutit.

  • [ SCHEMA = { NONE | STANDARD | DEFAULT } ]
    (Cette option est pour la clause WEBMETHOD.) Détermine si le schéma XSD en ligne sera renvoyé pour la méthode Web actuelle dans les réponses SOAP.

    • NONE
      Le schéma XSD n'est pas retourné pour les résultats de l'instruction SELECT envoyés par le biais de SOAP.

    • STANDARD
      Le schéma XSD est retourné pour les résultats de l'instruction SELECT envoyés par le biais de SOAP.

    • DEFAULT
      Restaure les paramètres par défaut de l'option SCHEMA du point de terminaison.

    Si aucun schéma n'est spécifié ou que cette option a la valeur DEFAULT, l'option SCHEMA indiquée pour le point de terminaison détermine si le SCHEMA du résultat de la méthode est renvoyé.

    Pour obtenir un schéma pour le résultat d'une requête SELECT qui utilise l'option FOR XML, vous devez spécifier l'option XMLSCHEMA dans la requête, et ce, quelle que soit la configuration de l'option SCHEMA.

  • [ FORMAT = { ALL_RESULTS | ROWSETS_ONLY | NONE } ]
    Spécifie si le système renvoie un nombre de lignes, des messages d'erreur et des avertissements avec le jeu de résultats. La valeur par défaut est ALL_RESULTS.

    • ALL_RESULTS
      Renvoie un jeu de résultats, un nombre de lignes, des messages d'erreur et des avertissements dans la réponse SOAP.

    • ROWSETS_ONLY
      Renvoie uniquement les jeux de résultats.

      Utilisez cette option avec des applications clientes qui utilisent le générateur de classes proxy pour les services Web Visual Studio 2005, si vous souhaitez que les résultats soient renvoyés en tant que dataset unique (objet System.Data.Dataset), et non en tant que tableau d'objet.

    • NONE
      Supprime le renvoi de balises SOAP dans la réponse du serveur.

      Cette option peut être utilisée pour prendre en charge des applications qui disposent d'une procédure stockée dans laquelle la réponse sera renvoyée telle quelle, en mode brut, par le serveur. Lorsque cette option est activée, l'application se charge du renvoi du code XML correctement mis en forme. Cette fonctionnalité peut être utilisée pour contrôler la réponse pour plusieurs raisons. Par exemple, vous pouvez l'utiliser pour créer une procédure stockée qui renverrait une stratégie WS. L'option FORMAT=NONE est soumise aux conditions d'utilisation suivantes :

      • La méthode doit être mise en œuvre à l'aide d'une procédure stockée sans paramètres de sortie. Les fonctions définies par l'utilisateur ne sont pas autorisées avec ce format de réponse.

        Soit il doit s'agir d'une requête FOR XML à instruction unique (ce format de réponse ne tolère pas plusieurs instructions FOR XML), soit le résultat doit consister en une colonne unique portant le nom XML_F52E2B61-18A1-11d1-B105-00805F49916B et de type nvarchar.

  • BATCHES = { ENABLED | DISABLED }
    Spécifie si les requêtes SQL ad hoc sont prises en charge sur le point de terminaison. La valeur par défaut est DISABLED.

    ENABLED autorise les demandes SOAP pour les requêtes ad hoc qui utilisent la méthode sqlbatch à envoyer à ce point de terminaison.

    Si les traitements sont activés, les requêtes SQL ad hoc peuvent être exécutées sur le point de terminaison en appelant la méthode sql:sqlbatch. Cette méthode expose également la fonctionnalité de requête paramétrée. Par conséquent, elle peut prendre une liste facultative d'éléments SqlParameter qui décrira les métadonnées et valeurs des paramètres de la requête spécifiée.

    Les noms de paramètres qui commencent par le signe arobase (@) peuvent être incorporés à la requête. Vous devez fournir les noms de paramètres correspondants. Sinon, le système renvoie une erreur pour la requête.

  • LOGIN_TYPE = { MIXED | WINDOWS }
    Spécifie le mode d'authentification SQL Server pour le point de terminaison. Si l'argument LOGIN_TYPE n'est pas spécifié, la valeur par défaut est WINDOWS.

    L'argument LOGIN_TYPE peut être utilisé uniquement pour restreindre davantage le mode d'authentification pour les points de terminaison basés sur le mode d'authentification global du serveur sélectionné lors de l'installation de l'instance de SQL Server.

    • MIXED
      Autorise l'utilisation de l'authentification SQL Server ou Windows pour authentifier les utilisateurs du point de terminaison.

      Si l'argument MIXED est spécifié et que le serveur est installé en mode d'authentification Windows, le système renvoie une erreur.

      Avec le paramètre MIXED, le point de terminaison prend en charge l'authentification SQL Server et doit être configuré pour l'utilisation d'un port SSL (Secure Sockets Layer).

    • WINDOWS
      Autorise uniquement l'utilisation de l'authentification Windows pour authentifier les utilisateurs du point de terminaison.

  • WSDL = { NONE | DEFAULT | 'sp_name' }
    Indique si la génération de documents WSDL est prise en charge pour ce point de terminaison. Si la valeur NONE est spécifiée, aucune réponse WSDL n'est générée ni renvoyée pour les requêtes WSDL soumises au point de terminaison. Si la valeur DEFAULT est spécifiée, une réponse WSDL par défaut est générée et renvoyée pour les requêtes WSDL soumises au point de terminaison. Dans des cas exceptionnels, où vous mettez en œuvre une prise en charge WSDL personnalisée pour le point de terminaison, vous pouvez également spécifier une procédure stockée par le nom qui renverra un document WSDL modifié.

  • [ SESSIONS = { ENABLED | DISABLED } ]
    Spécifie si l'instance de SQL Server autorise la prise en charge de sessions. Si la valeur ENABLED est spécifiée, SQL Server autorise la prise en charge de sessions, par laquelle plusieurs couples de messages de réponse/requête SOAP peuvent être identifiés comme faisant partie d'une session SOAP unique. La valeur par défaut est DISABLED.

  • SESSION_TIMEOUT **=**timeoutInterval
    Indique le temps en secondes (sous la forme d'un nombre entier) restant avant l'expiration d'une session SOAP sur le serveur si aucune autre requête n'est reçue. La valeur par défaut est de 60 secondes. Ce paramètre remplace la valeur du délai d'attente spécifié dans l'en-tête de la session SOAP.

    Le délai d'attente qui est initialisé lorsque le serveur finit d'envoyer un message de réponse SOAP au client. Si le délai d'attente s'écoule avant une autre requête SOAP portant l'ID de session spécifié dans son en-tête, la session prend fin sur le serveur.

  • [ DATABASE = { 'database_name' | DEFAULT } ]
    Indique la base de données dans laquelle s'exécute l'opération demandée. Si database_name n'est pas spécifié ou si DEFAULT est spécifié, la base de données par défaut pour la connexion est utilisée.

  • [ NAMESPACE = { 'namespace' | DEFAULT } ]
    Spécifie l'espace de noms du point de terminaison. Si le paramètre namespace n'est pas spécifié ou si la valeur DEFAULT est définie, c'est l'espace de noms http://tempuri.org qui est pris en compte. Vous pouvez remplacer l'espace de noms par défaut lorsque vous indiquez une méthode spécifique à l'aide de WEBMETHOD **'namespace'**namespace.

  • [ SCHEMA = { NONE | STANDARD } ]
    Indique si le point de terminaison renvoie un schéma XSD lors de l'envoi des résultats SOAP.

    • NONE
      Omet le schéma en ligne des réponses SOAP.

    • STANDARD
      Inclut le schéma en ligne dans les réponses du point de terminaison.

    Notes

    Pour charger les résultats SOAP dans des objets System.Data.DataSet lorsque vous utilisez Visual Studio 2005, vous avez besoin de schémas en ligne. Vous devez donc choisir la valeur STANDARD.

  • [CHARACTER_SET = { SQL | XML } ]
    Détermine le comportement lorsque le résultat d'une opération inclut des caractères non valides dans XML. La valeur par défaut est XML.

    • SQL
      Encode les caractères non valides en tant que références, puis les renvoie dans le résultat. Dans ce cas, un analyseur XML peut rejeter le code XML renvoyé comme étant non valide.

    • XML
      Encode les caractères suivant la spécification XML. Tout caractère non autorisé dans le jeu de caractères XML fait que SQL Server retourne une erreur de XML non valide au client.

  • HEADER_LIMIT
    Indique la taille maximale, en octets, de l'en-tête dans l'enveloppe SOAP. Si les en-têtes SOAP sont trop longs, le serveur génère une erreur d'analyse. Si aucune valeur n'est spécifiée, une valeur par défaut de 8 Ko (8 192 octets) est prise en compte.

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. Le paramètre par défaut est WINDOWS.

    Parmi les méthodes d'authentification prises en charge figurent NTLM et/ou Kerberos. Pour plus d'informations sur ces méthodes, consultez Types d'authentification du point de terminaison.

    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.

    <authentication_options> ::=

    • 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. Paramètre 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.

    • CERTIFICATE 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 } ] CERTIFICATE 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 | SUPPORTED | REQUIRED } [ALGORITHM { RC4 | AES | 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 sur 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 :

    • RC4
      Indique que le point de terminaison doit utiliser l'algorithme RC4. Paramètre par défaut.

    • AES
      Indique que le point de terminaison doit utiliser l'algorithme AES.

    • 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 prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible 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.

Options SERVICE_BROKER

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ère les messages si une adresse de transfert est disponible.

    • DISABLED
      Annule les messages destinés à des services situés ailleurs. Il s'agit de l'option 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.

Options DATABASE_MIRRORING

L'argument suivant est propre à l'option DATABASE_MIRRORING.

  • ROLE = { WITNESS | PARTNER | 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 SQL Server 2005 Express Edition, 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 Présentation de la mise en miroir de bases de données.

Notes

Pour DATABASE_MIRRORING, seul TCP peut être utilisé en tant que protocole de transport, et pas HTTP. Aucun port par défaut n'est associé à DATABASE_MIRRORING.

Notes

Les instructions ENDPOINT DDL ne peuvent pas être exécutées au sein d'une transaction utilisateur. Les instructions ENDPOINT DDL n'échouent pas, même si une transaction active au niveau d'isolement d'instantané utilise le point de terminaison faisant l'objet d'une modification.

Les requêtes peuvent être exécutées sur un ENDPOINT par :

  • les membres du rôle de 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 de serveur fixe sysadmin. Pour plus d'informations, consultez GRANT – octroi d'autorisations de point de terminaison (Transact-SQL).

Exemples

A. Création d'un point de terminaison pour les requêtes SOAP

L'exemple suivant crée un point de terminaison appelé sql_endpoint, avec deux méthodes : GetSqlInfo et DayAsNumber. Avec ces méthodes, un client peut envoyer des requêtes SOAP au point de terminaison.

Pour chaque méthode, la valeur par défaut de l'option FORMAT est ALL_RESULTS. Par conséquent, la réponse SOAP pour la requête de méthode inclura des messages d'erreur, des avertissements et des informations sur le nombre de lignes.

Notez les paramètres suivants propres à SOAP :

  • L'option SCHEMA est définie sur STANDARD pour le point de terminaison. Les schémas en ligne sont dès lors renvoyés par défaut dans des réponses SOAP.

  • L'option WSDL est définie sur DEFAULT. Par conséquent, si un client demande une réponse WSDL à partir de ce point de terminaison (https://Server/sql?wsdl), le serveur génère et renvoie une réponse WSDL au client.

DROP ENDPOINT sql_endpoint;
GO

CREATE ENDPOINT sql_endpoint 
STATE = STARTED
AS HTTP(
   PATH = '/sql', 
   AUTHENTICATION = (INTEGRATED ), 
   PORTS = ( CLEAR ), 
   SITE = 'SERVER'
   )
FOR SOAP (
   WEBMETHOD 'GetSqlInfo' 
            (name='master.dbo.xp_msver', 
             SCHEMA=STANDARD ),
   WEBMETHOD 'DayAsNumber' 
            (name='master.sys.fn_MSdayasnumber'),
   WSDL = DEFAULT,
   SCHEMA = STANDARD,
   DATABASE = 'master',
   NAMESPACE = 'http://tempUri.org/'
   ); 
GO

Vous pouvez interroger l'affichage catalogue afin de trouver les informations relatives au point de terminaison créé, comme le montrent les exemples suivants. Vous pouvez également faire une jointure de ces affichages catalogue afin d'obtenir les données souhaitées.

Interrogez sys.endpoints pour extraire toutes les informations relatives au point de terminaison dans le système. Il s'agit notamment du nom, de l'ID du point de terminaison, de l'ID du serveur principal qui possède le point de terminaison et d'autres propriétés de ce point.

SELECT *
FROM sys.endpoints;

Vous pouvez interroger sys.http_endpoints pour extraire les détails du point de terminaison relatifs au protocole HTTP, par exemple : SITE, URL, mécanisme AUTHENTICATION et autres informations propres à HTTP.

SELECT *
FROM sys.http_endpoints;

Pour extraire des informations propres à SOAP sur le point de terminaison, interrogez sys.soap_endpoints.

SELECT * 
FROM sys.soap_endpoints;

Pour extraire les méthodes SOAP définies sur le point de terminaison, interrogez sys.endpoint_webmethods.

SELECT *
FROM sys.endpoint_webmethods;

B. Création d'un point de terminaison pour la 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

C. Spécification d'un port

Lors de la création d'un point de terminaison SOAP sur un ordinateur Windows Server à compter de Windows Server 2003, si la combinaison de chemin d'accès (URL) et de port est en cours d'utilisation par les services Internet (IIS), CREATE ENDPOINT échoue.

Sur Windows XP, vous devrez peut-être arrêter les services Internet (IIS) pour que les points de terminaison SOAP fonctionnent.

CREATE ENDPOINT sql_endpoint
 STATE = STARTED 
AS HTTP
( PATH = '/sql',
 AUTHENTICATION = (INTEGRATED ),
 PORTS = ( CLEAR ),
 SITE = 'SERVER',
 CLEAR_PORT = 2000 )
FOR SOAP 
( WEBMETHOD 'GetSqlInfo' (name='master.dbo.xp_msver', SCHEMA=STANDARD ),
 WEBMETHOD 'DayAsNumber' (name='master.sys.fn_MSdayasnumber'),
 WSDL = DEFAULT,
 SCHEMA = STANDARD,
 DATABASE = 'master',
 NAMESPACE = 'http://tempUri.org/' );