Permisos de usuario de Service Broker
La mayoría de las aplicaciones de Service Broker que implican más de una instancia se ejecutan en el contexto de seguridad de una entidad de seguridad de base de datos creada específicamente para la aplicación. Estas entidades de seguridad de base de datos deben tener los permisos mínimos necesarios para realizar las tareas que lleva a cabo la aplicación.
En las entidades de seguridad de base de datos creadas para las aplicaciones de Service Broker se aplican las siguientes consideraciones:
- La autorización remota de Service Broker se aplica cuando una aplicación de Service Broker remota se conecta con SQL Server y entrega un mensaje a la instancia. La entidad de seguridad de base de datos especificada para la autorización remota debe tener permiso CONNECT en la base de datos que aloja el servicio iniciador y permiso SEND para el propio servicio iniciador. El certificado que se utiliza para la autenticación debe ser propiedad del usuario. No es necesario que el usuario posea otros objetos, tenga otros permisos o pueda iniciar sesión con cualquier otro mecanismo.
- Para que una entidad de seguridad de base de datos inicie una conversación, debe tener permisos RECEIVE en la cola para el servicio iniciador.
- La entidad de seguridad de base de datos que posee el servicio iniciador debe tener permisos SEND en el servicio de destino.
- Para que una entidad de seguridad de base de datos envíe mensajes a un servicio, debe tener permisos SEND en el servicio. En el caso de los servicios alojados en una instancia distinta, la seguridad de diálogo de Service Broker determina la entidad de seguridad de base de datos en la instancia remota. Para obtener más información, vea Seguridad de diálogo de Service Broker. Observe que Service Broker no tiene en cuenta la pertenencia a las funciones de Windows cuando comprueba los permisos SEND.
- El usuario especificado como usuario de un procedimiento almacenado de activación debe tener permiso para ejecutar el procedimiento. Con frecuencia, el usuario especificado tiene los permisos necesarios para ejecutar las instrucciones del procedimiento. Sin embargo, tenga en cuenta que si el propio procedimiento almacenado se define con una cláusula EXECUTE AS, las instrucciones del procedimiento almacenado se ejecutan con el contexto de seguridad definido por el procedimiento almacenado. SQL Server establece primero el contexto de seguridad en el usuario especificado para la cola. A continuación, SQL Server ejecuta el procedimiento almacenado y éste cambia el contexto de seguridad al usuario especificado para el procedimiento.
- Cuando la seguridad de transporte de Service Broker utiliza SSPI, la cuenta de servicio de la base de datos remota debe tener permiso CONNECT en master y además, debe corresponder a un inicio de sesión. Por tanto, la cuenta con la que se ejecuta la instancia de SQL Server remota debe tener permiso para iniciar sesión en SQL Server mediante la autenticación de Windows. No existen requisitos para que el inicio de sesión tenga otros permisos ni posea objetos en cualquier base de datos.
Vea también
Otros recursos
GRANT (permisos de Service Broker de Transact-SQL)
Permisos de notificaciones de consulta