Roles fijos de base de datos del Agente SQL Server

Se aplica a:SQL ServerAzure 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 los roles de base de datos del Agente SQL Server son concéntricos: los roles con más privilegios heredan los permisos de los roles con menos privilegios en los objetos del Agente SQL Server (incluidos alertas, operadores, trabajos, programaciones y servidores proxy). Por ejemplo, si los miembros del rol SQLAgentUserRole con menos privilegios reciben acceso al proxy_A, los miembros del rol SQLAgentReaderRole y del rol SQLAgentOperatorRole automáticamente tendrán acceso a este proxy incluso si no se les concedió explícitamente el acceso al 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

Tenga en cuenta las implicaciones de seguridad antes de conceder acceso al servidor proxy a los miembros de losroles de base de datos del Agente SQL Server. 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 que les pertenecen)
Programación de trabajos

(solo programaciones que les pertenecen)
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 del rol SQLAgentUserRole se les conceda explícitamente el permiso EXECUTE para sp_purge_jobhistory a fin de 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

El rolSQLAgentReaderRole incluye todos los permisos de SQLAgentUserRole , así como también 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 del rolSQLAgentReaderRole 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

Tenga en cuenta las implicaciones de seguridad antes de conceder acceso al servidor proxy a los miembros de losroles de base de datos del Agente SQL Server. 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 del rol SQLAgentReaderRole se les conceda explícitamente el permiso EXECUTE para sp_purge_jobhistory a fin de 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 aplicable 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 del rolSQLAgentOperatorRole 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 SQLAgentOperatorRole solo pueden especificar los parámetros que especifican el nombre o el identificador del trabajo o la programación y el parámetro @enabled. Si especifican cualquier otro parámetro, se producirá un error en la ejecución de estos procedimientos almacenados. Los miembros deSQLAgentOperatorRole 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

Tenga en cuenta las implicaciones de seguridad antes de conceder acceso al servidor proxy a los miembros de losroles de base de datos del Agente SQL Server. 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 del rolSQLAgentOperatorRole pueden habilitar o deshabilitar trabajos locales que no les pertenecen a través del procedimiento almacenado sp_update_job y especificando valores para los parámetros @enabled y @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 producirá un error.
No

Los miembros del rolSQLAgentOperatorRole 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 producirá 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 No No aplicable No aplicable
Ver historial de trabajos No aplicable No aplicable No aplicable No aplicable
Eliminar historial de trabajos No aplicable No aplicable No No aplicable No aplicable
Adjuntar o separar No aplicable No aplicable No aplicable No aplicable Sí (solo programaciones que les pertenecen) No aplicable

Asignar a los usuarios varios roles

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.

Consulte también

Implementar la seguridad del Agente SQL Server
sp_update_job (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_notify_operator (Transact-SQL)
sp_purge_jobhistory (Transact-SQL)