Funciones fijas de base de datos del Agente SQL Server
SQL Server 2005 presenta 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 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 Agente SQL 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 |
Sí |
No |
Ver lista (enumerar) |
Sí 2 |
Sí |
Sí |
Sí 3 |
Habilitar o deshabilitar |
No |
Sí |
Sí |
No aplicable |
Ver propiedades |
No |
Sí |
Sí |
No |
Ejecutar, detener o iniciar |
No aplicable |
Sí |
No aplicable |
No aplicable |
Ver historial de trabajos |
No aplicable |
Sí |
No aplicable |
No aplicable |
Eliminar historial de trabajos |
No aplicable |
No 4 |
No aplicable |
No aplicable |
Adjuntar o separar |
No aplicable |
No aplicable |
Sí |
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 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 Agente SQL 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í |
Sí |
Sí |
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 |
Sí |
Sí |
Sí |
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 |
Sí |
Sí |
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 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 Agente SQL 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í |
Sí 1 |
Sí |
Sí |
Sí |
Sí |
Habilitar o deshabilitar |
No |
No |
Sí 3 |
No |
Sí 4 |
No aplicable |
Ver propiedades |
Sí |
Sí |
Sí |
Sí |
Sí |
Sí |
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 |
Sí |
No |
No aplicable |
No aplicable |
Ver historial de trabajos |
No aplicable |
No aplicable |
Sí |
Sí |
No aplicable |
No aplicable |
Eliminar historial de trabajos |
No aplicable |
No aplicable |
Sí |
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.
Vea también
Conceptos
Implementar la seguridad del Agente SQL Server
Otros recursos
sp_update_job (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_notify_operator (Transact-SQL)
sp_purge_jobhistory (Transact-SQL)