Funciones fijas de base de datos del Agente SQL Server

SQL Server 2005 presentó las siguientes funciones fijas de base de datos de base de datos msdb, que proporcionan a los administradores un control más preciso a la hora de obtener acceso al Agente SQL Server.Las funciones enumeradas de menor a mayor privilegio de acceso son:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Cuando los usuarios que no son miembros de una de estas funciones se conectan con SQL Server en SQL Server Management Studio, el nodo del Agente SQL Server no está visible en el Explorador de objetos. Es preciso que los usuarios sean miembros de las funciones fijas de bases de datos o de la función de servidor fija sysadmin para poder utilizar el Agente SQL Server.

Permisos de las funciones fijas de base de datos del Agente SQL Server

Los permisos de las funciones de base de datos del Agente SQL Server son concéntricos: las funciones con más privilegios heredan los permisos de las funciones con menos privilegios en los objetos del Agente SQL Server (incluidos alertas, operadores, trabajos, programaciones y servidores proxy). Por ejemplo, si a los miembros de la función SQLAgentUserRole con menos privilegios se les ha concedido el acceso a‎l proxy_A, los miembros de las funciones SQLAgentReaderRole y SQLAgentOperatorRole tendrán automáticamente acceso a este proxy incluso si no se les ha concedido explícitamente el acceso al proxy_A. Esto puede tener implicaciones de seguridad, que se describen en las siguientes secciones sobre cada función.

Permisos de SQLAgentUserRole

SQLAgentUserRole es la función con menos privilegios de todas las funciones fijas de base de datos del Agente SQL Server. Sólo dispone de permisos para operadores, trabajos locales y programaciones de trabajos. Los miembros de SQLAgentUserRole sólo 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 sólo está visible el nodo Trabajos del Explorador de objetos de SQL Server Management Studio.

Nota de seguridadNota de seguridad

Tenga en cuenta las implicaciones de seguridad antes de conceder acceso al servidor proxy a los miembros de las funcionesde base de datos del AgenteSQL Server. Las funciones SQLAgentReaderRole y SQLAgentOperatorRole se convierten automáticamente en miembros de la función SQLAgentUserRole. Esto significa que los miembros de SQLAgentReaderRole y SQLAgentOperatorRole tienen acceso a todos los servidores proxy del Agente SQL Server cuyo acceso se ha concedido a SQLAgentUserRole y, por tanto, pueden utilizar dichos servidores proxy.

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

Acción

Operadores

Trabajos locales

(sólo trabajos que les pertenecen)

Programación de trabajos

(sólo programaciones que les pertenecen)

Servidores proxy

Crear, modificar o eliminar

No

Sí 1

No

Ver lista (enumerar)

Sí 2

Sí 3

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 aplicable

No 4

No aplicable

No aplicable

Adjuntar o separar

No aplicable

No aplicable

No aplicable

1 No se puede cambiar la propiedad de un trabajo.

2 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.

3 Lista de los servidores proxy disponibles solamente en el cuadro de diálogo Propiedades de paso de trabajo de Management Studio.

4 Es necesario que a los miembros de SQLAgentUserRole se les haya concedido 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.

Permisos de SQLAgentReaderRole

La función SQLAgentReaderRole incluye todos los permisos de SQLAgentUserRole así como permisos para ver la lista de trabajos multiservidor disponibles, sus propiedades y su historial. Los miembros de esta función también pueden ver la lista de trabajos y programaciones de trabajos disponibles y sus propiedades, y no sólo 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 no les pertenezcan ya. Para los miembros de SQLAgentReaderRole sólo está visible el nodo Trabajos del Explorador de objetos de SQL Server Management Studio.

Nota de seguridadNota de seguridad

Tenga en cuenta las implicaciones de seguridad antes de conceder acceso al servidor proxy a los miembros de las funcionesde base de datos del AgenteSQL Server. Los miembros de SQLAgentReaderRole se convierten automáticamente en miembros de la función SQLAgentUserRole. Esto significa que los miembros de SQLAgentReaderRole tienen acceso a todos los servidores proxy del Agente SQL Server cuyo acceso se ha concedido a SQLAgentUserRole y, por tanto, pueden utilizar dichos servidores proxy.

En la siguiente tabla encontrará un resumen de los permisos de 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í 1 (sólo trabajos que les pertenecen)

No

Sí (sólo programaciones que les pertenecen)

No

Ver lista (enumerar)

Sí 2

Sí 3

Habilitar o deshabilitar

No

Sí (sólo trabajos que les pertenecen)

No

Sí (sólo programaciones que les pertenecen)

No aplicable

Ver propiedades

No

No

Modificar propiedades

No

Sí (sólo trabajos que les pertenecen)

No

Sí (sólo programaciones que les pertenecen)

No

Ejecutar, detener o iniciar

No aplicable

Sí (sólo trabajos que les pertenecen)

No

No aplicable

No aplicable

Ver historial de trabajos

No aplicable

No aplicable

No aplicable

Eliminar historial de trabajos

No aplicable

No 4

No

No aplicable

No aplicable

Adjuntar o separar

No aplicable

No aplicable

No aplicable

Sí (sólo programaciones que les pertenecen)

No aplicable

1 No se puede cambiar la propiedad de un trabajo.

2 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.

3 Lista de los servidores proxy disponibles solamente en el cuadro de diálogo Propiedades de paso de trabajo de Management Studio.

4 Es necesario que a los miembros de SQLAgentReaderRole se les haya concedido 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.

Permisos de SQLAgentOperatorRole

SQLAgentOperatorRole es la función con más privilegios de todas las funciones fijas de base de datos del Agente SQL Server. Incluye todos los permisos de SQLAgentUserRole y SQLAgentReaderRole. Los miembros de esta función 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 los trabajos locales y en las programaciones. 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 trabajos locales o programaciones, los miembros de esta función deben utilizar los procedimientos almacenados sp_update_job y sp_update_schedule. Los miembros de SQLAgentOperatorRole únicamente 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 de SQLAgentOperatorRole no pueden cambiar la propiedad de un trabajo para obtener acceso a trabajos que no les pertenezcan ya.

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

Nota de seguridadNota de seguridad

Tenga en cuenta las implicaciones de seguridad antes de conceder acceso al servidor proxy a los miembros de las funcionesde base de datos del AgenteSQL Server. Los miembros de SQLAgentOperatorRole se convierten automáticamente en miembros de SQLAgentUserRole y SQLAgentReaderRole. Esto significa que los miembros de SQLAgentOperatorRole tienen acceso a todos los servidores proxy del Agente SQL Server cuyo acceso se ha concedido a SQLAgentUserRole o SQLAgentReaderRole y, por tanto, pueden utilizar dichos servidores proxy.

En la siguiente tabla encontrará un resumen de los permisos de 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í 2 (sólo trabajos que les pertenecen)

No

Sí (sólo programaciones que les pertenecen)

No

Ver lista (enumerar)

Sí 1

Habilitar o deshabilitar

No

No

Sí 3

No

Sí 4

No aplicable

Ver propiedades

Modificar propiedades

No

No

Sí (sólo trabajos que les pertenecen)

No

Sí (sólo 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í (sólo programaciones que les pertenecen)

No aplicable

1 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.

2 No se puede cambiar la propiedad de un trabajo.

3 Los miembros de SQLAgentOperatorRole pueden habilitar o deshabilitar trabajos locales que no les pertenecen utilizando el procedimiento almacenado sp_update_job y especificando valores para los parámetros @enabled y @job_id (o @job_name). Si un miembro de esta función especifica cualquier otro parámetro para este procedimiento almacenado, la ejecución del procedimiento producirá un error.

4 Los miembros de SQLAgentOperatorRole pueden habilitar o deshabilitar programaciones que no les pertenecen utilizando el procedimiento almacenado sp_update_schedule y especificando valores para los parámetros @enabled y @schedule_id (o @name). Si un miembro de esta función especifica cualquier otro parámetro para este procedimiento almacenado, la ejecución del procedimiento producirá un error.

Asignar a los usuarios varias funciones

Los miembros de la función fija de seguridad sysadmin tienen acceso a toda la funcionalidad del Agente SQL Server. Si un usuario no es miembro de la función sysadmin, pero es miembro de más de una función fija de base de datos del Agente SQL Server, es importante recordar el modelo de permisos concéntricos de estas funciones. Debido a que las funciones con más privilegios siempre contienen todos los permisos de las funciones con menos privilegios, un usuario que sea miembro de más de una función automáticamente tendrá los permisos asociados con la función con más privilegios de la que sea miembro.