Roles fijos de base de datos del Agente SQL Server

Se aplica a: SQL Server Azure SQL Managed Instance

Importante

En Azure SQL Managed Instance, actualmente son compatibles la mayoría de las características del Agente SQL Server. Consulte Diferencias entre T-SQL de Azure SQL Managed Instance y SQL Server para más información.

SQL Server tiene los roles fijos de base de datos de la base de datos msdb siguientes, que proporcionan a los administradores un control más preciso a la hora de obtener acceso al Agente SQL Server. Los roles enumerados de menor a mayor privilegio de acceso son:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Cuando los usuarios que no son miembros de uno de estos roles se conectan a SQL Server en SQL Server Management Studio, el nodo del Agente SQL Server no aparece en el Explorador de objetos. Es preciso que los usuarios sean miembros de uno de estos roles fijos de base de datos o del rol fijo de servidor sysadmin para poder usar el Agente SQL Server.

Permisos de los roles fijos de base de datos del Agente SQL Server

Los permisos de rol de base de datos del Agente SQL Server son concéntricos en relación entre sí. En otras palabras, los roles con más privilegios heredan los permisos de los roles con menos privilegios sobre los objetos del Agente SQL Server (incluidos alertas, operadores, trabajos, programaciones y servidores proxy). Por ejemplo, si los miembros de SQLAgentUserRole con menos privilegios reciben acceso a proxy_A, los miembros de SQLAgentReaderRole y SQLAgentOperatorRole automáticamente tendrán acceso a este proxy incluso si no se les concedió explícitamente el acceso a proxy_A. Esto puede tener implicaciones de seguridad, que se describen en las siguientes secciones sobre cada rol.

Permisos de SQLAgentUserRole

SQLAgentUserRole es el rol con menos privilegios de todos los roles fijos de la base de datos del Agente SQL Server. Solo dispone de permisos para operadores, trabajos locales y programaciones de trabajos. Los miembros de SQLAgentUserRole solo tienen permisos en los trabajos locales y en las programaciones de trabajos que les pertenecen. No pueden utilizar trabajos multiservidor (trabajos de servidor de destino y de servidor principal), ni pueden cambiar la propiedad de un trabajo para obtener acceso a trabajos que todavía no les pertenecen. Los miembros de SQLAgentUserRole pueden ver una lista de los servidores proxy disponibles únicamente en el cuadro de diálogo Propiedades de paso de trabajo de SQL Server Management Studio. Para los miembros de SQLAgentUserRole solo está visible el nodo Trabajos del Explorador de objetos de SQL Server Management Studio.

Importante

Los roles SQLAgentReaderRole y SQLAgentOperatorRole se convierten automáticamente en miembros del rol SQLAgentUserRole. Esto significa que los miembros de los roles SQLAgentReaderRole y SQLAgentOperatorRole tienen acceso a todos los servidores proxy del Agente SQL Server cuyo acceso se concedió aSQLAgentUserRole y, por tanto, pueden utilizar dichos servidores proxy.

En la tabla siguiente, verá un resumen de los permisos del rol SQLAgentUserRole para los objetos del Agente SQL Server.

Acción Operadores Trabajos locales (solo trabajos en propiedad) Programaciones de trabajo (solo programaciones en propiedad) Servidores proxy
Crear, modificar o eliminar No

No se puede cambiar la propiedad de un trabajo.
No
Ver lista (enumerar)

Se puede obtener la lista de operadores disponibles para utilizar en sp_notify_operator y en el cuadro de diálogo Propiedades del trabajo de Management Studio.


Lista de los servidores proxy disponibles solo en el cuadro de diálogo Propiedades de paso de trabajo de Management Studio.
Habilitar o deshabilitar No No aplicable
Ver propiedades No No
Ejecutar, detener o iniciar No aplicable No aplicable No aplicable
Ver historial de trabajos No aplicable No aplicable No aplicable
Eliminar historial de trabajos No es aplicable No

Es necesario que a los miembros de SQLAgentUserRole se les conceda explícitamente el permiso EXECUTE en sp_purge_jobhistory para eliminar el historial de los trabajos que les pertenecen. No pueden eliminar el historial de ningún otro trabajo.
No aplicable No aplicable
Adjuntar o separar No aplicable No aplicable No es aplicable

Permisos de SQLAgentReaderRole

SQLAgentReaderRole incluye todos los permisos de SQLAgentUserRole, así como los permisos para ver la lista de trabajos multiservidor disponibles, sus propiedades y su historial. Los miembros de este rol también pueden ver la lista de trabajos y programaciones de trabajos disponibles y sus propiedades, y no solo los trabajos y programaciones de trabajos que les pertenecen. Los miembros de SQLAgentReaderRole no pueden cambiar la propiedad de un trabajo para obtener acceso a trabajos que ya no les pertenecen. Para los miembros del rol SQLAgentReaderRole, solo está visible el nodo Trabajos del Explorador de objetos de SQL Server Management Studio.

Importante

Los miembros del rol SQLAgentReaderRole se convierten inmediatamente en miembros del rol SQLAgentUserRole. Esto significa que los miembros del rol SQLAgentReaderRole tienen acceso a todos los servidores proxy del Agente SQL Server cuyo acceso se concedió a SQLAgentUserRole y, por tanto, pueden usar dichos servidores proxy.

En la tabla siguiente, verá un resumen de los permisos del rol SQLAgentReaderRole para los objetos del Agente SQL Server.

Acción Operadores Trabajos locales Trabajos multiservidor Programación de trabajos Servidores proxy
Crear, modificar o eliminar No Sí (solo trabajos que les pertenecen)

No se puede cambiar la propiedad de un trabajo.
No Sí (solo programaciones que les pertenecen) No
Ver lista (enumerar)

Se puede obtener la lista de operadores disponibles para utilizar en sp_notify_operator y en el cuadro de diálogo Propiedades del trabajo de Management Studio.


Lista de los servidores proxy disponibles solo en el cuadro de diálogo Propiedades de paso de trabajo de Management Studio.
Habilitar o deshabilitar No Sí (solo trabajos que les pertenecen) No Sí (solo programaciones que les pertenecen) No aplicable
Ver propiedades No No
Modificar propiedades No Sí (solo trabajos que les pertenecen) No Sí (solo programaciones que les pertenecen) No
Ejecutar, detener o iniciar No aplicable Sí (solo trabajos que les pertenecen) No No aplicable No aplicable
Ver historial de trabajos No aplicable No aplicable No aplicable
Eliminar historial de trabajos No es aplicable No

Es necesario que a los miembros de SQLAgentReaderRole se les conceda explícitamente el permiso EXECUTE en sp_purge_jobhistory para eliminar el historial de los trabajos que les pertenecen. No pueden eliminar el historial de ningún otro trabajo.
No No aplicable No aplicable
Adjuntar o separar No aplicable No disponible No aplicable Sí (solo programaciones que les pertenecen) No aplicable

Permisos de SQLAgentOperatorRole

SQLAgentOperatorRole es el rol con más privilegios de todos los roles fijos de base de datos del Agente SQL Server. Incluye todos los permisos de los roles SQLAgentUserRole y SQLAgentReaderRole. Los miembros de este rol también pueden ver las propiedades de operadores y servidores proxy, así como enumerar los servidores proxy y alertas disponibles en el servidor.

Los miembros de SQLAgentOperatorRole tienen permisos adicionales en las programaciones y los trabajos locales. Pueden ejecutar, detener o iniciar todos los trabajos locales, y pueden eliminar el historial de trabajos de cualquier trabajo local del servidor. También pueden habilitar o deshabilitar todos los trabajos locales y programaciones del servidor. Para habilitar o deshabilitar programaciones o trabajos locales, los miembros de este rol deben usar los procedimientos almacenados sp_update_job y sp_update_schedule. Los miembros del rol @enabled solo pueden especificar los parámetros que especifican el nombre o el identificador del trabajo o la programación y el parámetro SQLAgentOperatorRole. Si especifican cualquier otro parámetro, se producirá un error en la ejecución de estos procedimientos almacenados. Los miembros de SQLAgentOperatorRole no pueden cambiar la propiedad de un trabajo para obtener acceso a trabajos que ya no les pertenecen.

Los nodos Trabajos, Alertas, Operadores y Servidores proxy del Explorador de objetos de SQL Server Management Studio están visibles para los miembros del rol SQLAgentOperatorRole. El único nodo que no está visible para los miembros de este rol es el nodo Registros de errores.

Importante

Los miembros del rol SQLAgentOperatorRole se convierten automáticamente en miembros de los roles SQLAgentUserRole y SQLAgentReaderRole. Esto significa que los miembros del rol SQLAgentOperatorRole tienen acceso a todos los servidores proxy del Agente SQL Server cuyo acceso se concedió a SQLAgentUserRole o SQLAgentReaderRole y, por tanto, pueden usar estos servidores proxy.

En la tabla siguiente, verá un resumen de los permisos del rol SQLAgentOperatorRole para los objetos del Agente SQL Server.

Acción Alertas Operadores Trabajos locales Trabajos multiservidor Programación de trabajos Servidores proxy
Crear, modificar o eliminar No No Sí (solo trabajos que les pertenecen)

No se puede cambiar la propiedad de un trabajo.
No Sí (solo programaciones que les pertenecen) No
Ver lista (enumerar)

Se puede obtener la lista de operadores disponibles para utilizar en sp_notify_operator y en el cuadro de diálogo Propiedades del trabajo de Management Studio.
Habilitar o deshabilitar No No

Los miembros de SQLAgentOperatorRole pueden habilitar o deshabilitar trabajos locales que no les pertenecen a través del procedimiento almacenado sp_update_job y especificando valores para @enabled y los parámetros @job_id (o @job_name). Si un miembro de este rol especifica cualquier otro parámetro para este procedimiento almacenado, la ejecución del procedimiento produce un error.
No

Los miembros de SQLAgentOperatorRole pueden habilitar o deshabilitar programaciones que no les pertenecen a través del procedimiento almacenado sp_update_schedule y especificando valores para los parámetros @enabled y @schedule_id (o @name). Si un miembro de este rol especifica cualquier otro parámetro para este procedimiento almacenado, la ejecución del procedimiento produce un error.
No aplicable
Ver propiedades
Modificar propiedades No No Sí (solo trabajos que les pertenecen) No Sí (solo programaciones que les pertenecen) No
Ejecutar, detener o iniciar No aplicable No aplicable Ninguno No aplicable No aplicable
Ver historial de trabajos No aplicable No aplicable No aplicable No aplicable
Eliminar historial de trabajos No aplicable No aplicable Ninguno No aplicable No aplicable
Adjuntar o separar No aplicable No disponible No disponible No aplicable Sí (solo programaciones que les pertenecen) No aplicable

Asignación de varios roles a los usuarios

Los miembros del rol fijo de servidor sysadmin tienen acceso a toda la funcionalidad del Agente SQL Server. Si un usuario no es miembro del rol sysadmin, pero sí lo es de más de un rol fijo de base de datos del Agente SQL Server, es importante recordar el modelo de permisos concéntricos de estos roles. Debido a que los roles con más privilegios siempre contienen todos los permisos de los roles con menos privilegios, un usuario que sea miembro de más de un rol automáticamente tendrá los permisos asociados con el rol con más privilegios del que sea miembro.