Share via


Réservation d'un espace de noms HTTP

La réservation d'un espace de noms HTTP pour l'utiliser avec une instance de SQL Server 2005 est réalisable à l'aide d'une réservation implicite, comme lorsque vous utilisez l'instruction CREATE ENDPOINT, ou à l'aide d'une réservation explicite en utilisant la procédure stockée sp_reserve_http_namespace.

Les espaces de noms URL sont réservés pour les raisons suivantes :

  • Si une application est exécutée sur un compte non administrateur, elle ne peut pas se lier à l'espace de noms à l'exécution si un administrateur ne le réserve pas. Il s'agit des conditions requises par le pilote HTTP en mode noyau (Http.sys).
    La seule exception à cette règle concerne le cas où l'application est exécutée sur un compte système local. Les applications exécutées sur le compte système local peuvent se lier à un espace de noms quelconque tant que ce dernier est libre. Même lors d'une exécution sur le compte système local, il est conseillé de réserver les espaces de noms pour les raisons ci-dessous.
  • La réservation d'un espace de nom garantit que les autres applications ne peuvent pas s'y lier ; par conséquent, l'application est seule propriétaire de l'espace de noms.
    Par exemple, si une instance de SQL Server 2005 est exécutée sur le compte système local, la réservation d'espaces de noms n'est pas nécessaire, mais elle est néanmoins conseillée pour éviter des conflits entre applications sur les adresses URL.

La réservation des espaces de noms est hiérarchique. Par exemple, si l'espace de noms http://adventure-works.com:80/ est réservé, les sous-espaces de noms tels que http://adventure-works.com:80/sqlapp1 et http://adventure-works.com:80/sqlapp2/dir1 le sont également.

ms190614.note(fr-fr,SQL.90).gifRemarque :
Pour réserver un espace de noms HTTP en utilisant le pilote HTTP en mode noyau (Http.sys), il est nécessaire de détenir des privilèges d'administration Windows sur l'ordinateur local sur lequel l'instance de SQL Server 2005 est installée.

Création d'une réservation explicite

Pour créer une réservation explicite, si un administrateur souhaite que les utilisateurs puissent exécuter une instruction DLL sur un point de terminaison sans recourir à des privilèges élevés sur l'ordinateur, il peut réserver un espace de noms URL à l'aide de la procédure stockée sp_reserve_http_namespace.

Par exemple, vous pouvez vous connecter à une instance de SQL Server 2005 à l'aide de l'authentification Windows, qui est une connexion disposant des privilèges d'administrateur, et exécuter la procédure stockée suivante :

sp_reserve_http_namespace N'http://MyServer:80/sql'
GO

La procédure stockée réserve explicitement l'espace de nom spécifié, où MyServer représente le nom du serveur et 80 le numéro du port. Cette procédure réserve l'espace de noms URL spécifié, de telle manière que les opérations DDL ultérieures dans cet espace de noms ne nécessitent pas de privilège d'administrateur sur l'ordinateur. Un utilisateur sans privilège d'administrateur sur l'ordinateur peut exécuter l'instruction DDL sur un point de terminaison.

Par exemple, un utilisateur peut exécuter l'instruction CREATE ENDPOINT suivante :

CREATE ENDPOINT sql_endpoint 
STATE = STARTED
AS HTTP(
   PATH = '/sql/AdvWorks', 
   AUTHENTICATION = (INTEGRATED ), 
   PORTS = ( CLEAR ), 
   SITE = 'MyServer'
)
FOR SOAP (
    ...
)
GO

L'instruction sur le point de terminaison inscrit simplement /sql/AdvWorks dans l'espace de noms réservé de HTTP.SYS. Une application cliente peut alors envoyer une demande SOAP, par exemple en demandant une réponse WSDL du serveur, au point de terminaison :

http://MyServer/sql/AdvWorks?wsdl

Le nom de l'espace de noms spécifié dans la procédure stockée sp_reserve_http_namespace doit prendre la forme suivante :

<scheme>://<hostpart>[:<port>]/<RelativeURI>
  • scheme
    Peut être http ou https.
  • hostpart
    Peut être un nom d'hôte spécifique ou les caractères génériques suivants : signe plus (+) ou astérisque (*).

    Le signe plus (+) précise que l'opération de réservation s'applique à tous les noms d'hôte possibles pour l'ordinateur et pour le schéma <scheme> et le <port> spécifiés.

    L'astérisque (*) précise que l'opération de réservation s'applique à tous les noms d'hôte possibles pour l'ordinateur et pour le schéma <scheme> et le <port> spécifiés qui ne sont pas explicitement réservés d'une autre manière, par exemple par l'exécution d'autres opérations sp_reserve_http_namespace, d'autres points de terminaison actifs ou d'autres applications.

Identification de l'espace de noms d'un point de terminaison

Vous pouvez identifier l'espace de noms adéquat d'un point de terminaison en fonction des paramètres de l'instruction CREATE ENDPOINT.

La valeur du paramètre PORTS de l'instruction CREATE ENDPOINT détermine le schéma de l'espace de noms, comme le montre le tableau suivant :

Valeur du point de terminaison Valeur du <schéma>

CLEAR

http

SSL

https

n

http

La valeur du paramètre CLEAR_PORT ou SSL_PORT définit la valeur de <port> de l'espace de noms.

La valeur du paramètre PATH définit l'<URI relatif> de l'espace de noms.

La valeur du paramètre PATH définit la <partie hôte> de l'espace de noms.

Par exemple, l'instruction suivante crée un point de terminaison possédant l'espace de noms http://testhost:80/sqlurl/myapp.

CREATE ENDPOINT ext_endpoint
    STATE = STARTED
AS HTTP (       
PATH = '/squl/myapp'
, PORTS = CLEAR
, SITE = testhost
, CLEAR_PORT = 80 
)

Par exemple, l'instruction suivante crée un point de terminaison possédant l'espace de noms https://*:443/sqlurl/myapp :

CREATE ENDPOINT ext_endpoint
    STATE = STARTED
AS HTTP (       
PATH = ‘/squl/myapp’
, PORTS = SSL
, SITE = *
, SSL_PORT = 443 
)

Exemple

Dans l'exemple ci-dessous, l'administrateur réserve un espace de noms dans HTTP.SYS pour la connexion SSL. Par conséquent, un utilisateur peut créer des points de terminaison où PORT a la valeur SSL.

sp_reserve_http_namespace N'https://MyServer:443/sql'

Voir aussi

Référence

Réservation d'espaces de noms d'URL au moyen de Http.sys
Suppression d'une réservation d'espace de noms HTTP

Concepts

Configuration du pilote en mode noyau HTTP (Http.sys)

Aide et Informations

Assistance sur SQL Server 2005