Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Crea un enlace que define las credenciales de seguridad que se utilizarán para iniciar una conversación con un servicio remoto.
Convenciones de sintaxis de Transact-SQL
Sintaxis
CREATE REMOTE SERVICE BINDING binding_name
[ AUTHORIZATION owner_name ]
TO SERVICE 'service_name'
WITH USER = user_name [ , ANONYMOUS = { ON | OFF } ]
[ ; ]
Argumentos
binding_name
Es el nombre del enlace de servicio remoto que se va a crear. No se pueden especificar nombres de servidor, base de datos o esquema.
binding_name debe ser un sysname válido.
AUTHORIZATION
owner_name
Establece el propietario del enlace en el usuario o el rol de base de datos que se ha especificado. Cuando el usuario actual es dbo o sa, owner_name puede ser el nombre de cualquier usuario o rol válidos. En caso contrario, owner_name debe ser el nombre del usuario actual, el nombre de un usuario para el que el usuario actual tiene permisos IMPERSONATE o el nombre de un rol al que pertenece el usuario actual.
PARA SERVICE 'service_name'
Especifica el servicio remoto que debe vincularse al usuario identificado en la cláusula WITH USER .
USER = user_name
Especifica el principal de la base de datos que posee el certificado asociado al servicio remoto identificado por la cláusula TO SERVICE . Este certificado se utiliza para el cifrado y la autenticación de los mensajes que se intercambian con el servicio remoto.
ANONYMOUS
Especifica si se va a utilizar la autenticación anónima en la comunicación con el servicio remoto. Si ANONYMOUS = ON, se usa la autenticación anónima y las operaciones en la base de datos remota se realizan como miembro del rol fijo de base de datos public. Si ANONYMOUS = OFF, las operaciones en la base de datos remota se realizan como un usuario específico de esa base de datos. Si no se especifica esta cláusula, el valor predeterminado es OFF.
Observaciones
Service Broker usa un enlace de servicio remoto para encontrar el certificado que se utilizará en una nueva conversación. La clave pública del certificado asociado a user_name se usa para autenticar mensajes enviados al servicio remoto y para cifrar una clave de sesión que se usará después para cifrar la conversación. El certificado de user_name debe corresponder al certificado de un usuario de la base de datos que hospede el servicio remoto.
Un enlace de servicio remoto solo es necesario para servicios iniciadores que se comunican con servicios de destino que están fuera de la instancia de SQL Server. Una base de datos que hospeda un servicio iniciador debe contener enlaces de servicio remoto para todos los servicios de destino que están fuera de la instancia de SQL Server. La base de datos que hospeda un servicio de destino no necesita contener enlaces de servicio remoto para los servicios iniciadores que se comunican con el servicio de destino. Cuando los servicios iniciador y de destino están en la misma instancia de SQL Server, no es necesario ningún enlace de servicio remoto. Sin embargo, si existe una vinculación de servicio remota donde la service_name especificada para TO SERVICE coincide con el nombre del servicio local, el Broker de Servicios usará la vinculación.
Cuando ANONYMOUS = ON, el servicio iniciador se conecta al servicio de destino como miembro del rol fijo de base de datos public. De manera predeterminada, los miembros de este rol no tienen permiso para conectarse a una base de datos. Para enviar un mensaje con éxito, la base de datos objetivo debe conceder al rol público permiso CONNECT para la base de datos y SEND permiso para el servicio objetivo.
Cuando un usuario posee más de un certificado, Service Broker selecciona, entre todos los certificados válidos y marcados como AVAILABLE FOR BEGIN_DIALOG, el que tenga la fecha de vencimiento más tardía.
Permisos
Los permisos para crear un enlace de servicio remoto por defecto corresponden al usuario nombrado en la USER cláusula, los miembros del db_owner rol fijo de base de datos, los miembros del rol fijo de base de datos db_ddladmin y los miembros del rol fijo de servidor sysadmin .
El usuario que ejecuta la CREATE REMOTE SERVICE BINDING instrucción debe tener permiso de suplantación para el principal especificado en la sentencia.
Un enlace de servicio remoto no puede ser un objeto temporal. Se permiten los nombres de enlace de servicio remoto que empiecen por # , aunque se trata de objetos permanentes.
Ejemplos
A. Crear un enlace de servicio remoto
En el ejemplo siguiente se crea un enlace para el servicio //Adventure-Works.com/services/AccountsPayable. Service Broker utiliza el certificado de la entidad de seguridad de base de datos APUser para autenticarse en el servicio remoto e intercambiar la clave de cifrado de sesión con el servicio remoto.
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser ;
B. Crear un enlace de servicio remoto con autenticación anónima
En el ejemplo siguiente se crea un enlace para el servicio //Adventure-Works.com/services/AccountsPayable. Service Broker utiliza el certificado de la entidad de seguridad de base de datos APUser para intercambiar la clave de cifrado de sesión con el servicio remoto. Service Broker no se autentica en el servicio remoto. En la base de datos que hospeda el servicio remoto, los mensajes se entregan como usuario guest (invitado).
CREATE REMOTE SERVICE BINDING APBinding
TO SERVICE '//Adventure-Works.com/services/AccountsPayable'
WITH USER = APUser, ANONYMOUS=ON ;
Vea también
ALTER REMOTE SERVICE BINDING (Transact-SQL)
DROP REMOTE SERVICE BINDING (Transact-SQL)
EVENTDATA (Transact-SQL)