CREATE REMOTE SERVICE BINDING (Transact-SQL)

Mis à jour : 15 septembre 2007

Crée une liaison qui définit les informations d'identification de sécurité à utiliser pour démarrer une conversation avec un service distant.

Icône Lien de rubriqueConventions de la syntaxe Transact-SQL

Syntaxe

CREATE REMOTE SERVICE BINDING binding_name 
   [ AUTHORIZATION owner_name ] 
   TO SERVICE 'service_name' 
   WITH  USER = user_name [ , ANONYMOUS = { ON | OFF } ]
[ ; ]

Arguments

  • binding_name
    Nom de la liaison de service distant à créer. Vous ne pouvez pas spécifier de noms de serveur, de base de données et de schéma. L'argument binding_name doit être d'un type sysname valide.
  • AUTHORIZATION owner_name
    Affecte au propriétaire de la liaison le rôle ou l'utilisateur de base de données spécifié. Lorsque l'utilisateur actuel est dbo ou sa, l'argument owner_name peut prendre le nom de n'importe quel utilisateur ou rôle valide. Dans le cas contraire, owner_name doit être le nom de l'utilisateur actif, le nom d'un utilisateur pour lequel l'utilisateur actif possède l'autorisation IMPERSONATE, ou le nom d'un rôle auquel appartient l'utilisateur actif.
  • TO SERVICE 'service_name'
    Spécifie le service distant à lier à l'utilisateur identifié dans la clause WITH USER.
  • USER = user_name
    Spécifie l'entité de sécurité de la base de données qui possède le certificat associé au service distant identifié par la clause TO SERVICE. Ce certificat est utilisé pour le chiffrement et l'authentification des messages échangés avec le service distant.
  • ANONYMOUS
    Indique si l'authentification anonyme est utilisée lors de la communication avec le service distant. Si ANONYMOUS = ON, l'authentification anonyme est utilisée et les opérations de la base de données distante sont effectuées en tant que membre du rôle de base de données fixe public. Si ANONYMOUS = OFF, les opérations de la base de données distante sont exécutées en tant qu'utilisateur spécifique dans cette base de données. Lorsque cette clause est omise, la valeur par défaut est OFF. La Sécurité du dialogue Service Broker décrit comment la sécurité du dialogue SQL Server mappe des liaisons de service distant à des entités de sécurité.

Notes

Service Broker utilise une liaison de service distant afin de localiser le certificat à utiliser pour une nouvelle conversation. La clé publique du certificat associé à user_name est utilisée pour authentifier les messages envoyés au service distant et pour chiffrer une clé de session qui sert ensuite à chiffrer la conversation. Le certificat de user_name doit correspondre au certificat d'un utilisateur de la base de données qui héberge le service distant.

Une liaison de service distant n'est nécessaire que pour démarrer des services qui communiquent avec des services cibles en dehors de l'instance SQL Server. Une base de données qui héberge un service d'initialisation doit contenir des liaisons de service distant pour tous les services cibles en dehors de l'instance SQL Server. Une base de données qui héberge un service cible n'a pas besoin de contenir des liaisons de service distant pour les services d'initialisation qui communiquent avec le service cible. Lorsque les services initiateur et cible se trouvent dans la même instance de SQL Server, aucune liaison de service distant n'est nécessaire. Toutefois, si une liaison de service distant est présente où le service_name spécifié pour TO SERVICE correspond au nom du service local, Service Broker utilise cette liaison.

Si ANONYMOUS = ON, le service à l'origine de l'initialisation se connecte au service cible en tant que membre du rôle de base de données fixe public. Par défaut, les membres de ce rôle n'ont pas l'autorisation de se connecter à une base de données. Pour qu'un message puisse être envoyé, la base de données cible doit accorder l'autorisation CONNECT du rôle public pour la base de données et l'autorisation SEND pour le service cible.

Lorsqu'un utilisateur possède plusieurs certificats actuellement valides et marqués comme étant AVAILABLE FOR BEGIN_DIALOG, Service Broker sélectionne celui qui est doté de la date d'expiration la plus lointaine.

Autorisations

Les autorisations de création d'une liaison de service distant sont octroyées par défaut à l'utilisateur spécifié dans la clause USER, aux membres du rôle de base de données fixe db_owner, aux membres du rôle de base de données fixe db_ddladmin et aux membres du rôle serveur fixe sysadmin.

L'utilisateur qui exécute l'instruction CREATE REMOTE SERVICE BINDING doit avoir l'autorisation d'emprunt d'identité pour l'entité de sécurité spécifiée dans l'instruction.

Une liaison de service distant ne peut pas être un objet temporaire. Les noms de liaison au service distant commençant par # sont autorisés, mais ce sont des objets permanents.

Exemples

A. Création d'une liaison de service distant

L'exemple suivant crée une liaison pour le service //Adventure-Works.com/services/AccountsPayable. Service Broker utilise le certificat appartenant à l'entité de sécurité de base de données APUser pour s'authentifier auprès du service distant et échanger la clé de chiffrement de la session avec le service distant.

CREATE REMOTE SERVICE BINDING APBinding
    TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
    WITH USER = APUser ;

B. Création d'une liaison de service distant avec une authentification anonyme

L'exemple suivant crée une liaison pour le service //Adventure-Works.com/services/AccountsPayable. Service Broker utilise le certificat appartenant à l'entité de sécurité de base de données APUser pour échanger la clé de chiffrement de la session avec le service distant. Il ne s'authentifie pas auprès du service distant. Dans la base de données qui héberge le service distant, les messages sont remis en tant qu'utilisateur guest.

CREATE REMOTE SERVICE BINDING APBinding
    TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
    WITH USER = APUser, ANONYMOUS=ON ;

Voir aussi

Référence

ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
EVENTDATA (Transact-SQL)

Autres ressources

Conduite d'une conversation entre des instances
Réflexions diverses sur la sécurité Service Broker
Certificats de la sécurité du dialogue

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

15 septembre 2007

Contenu modifié :
  • Les liaisons de service distant stipulées s'appliquent aux services locaux.