Roles fijos de base de datos del Agente SQL Server
SQL Server 2005 presentó los siguientes roles fijos de base de datos de la base de datos msdb, 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 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 los roles fijos de base de datos o del rol fijo de servidor sysadmin para poder utilizar 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 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 rol.
Permisos de SQLAgentUserRole
SQLAgentUserRole es el rol con menos privilegios de todos los roles fijos de 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.
Nota de seguridad |
---|
Tenga en cuenta las implicaciones de seguridad antes de conceder acceso al servidor proxy a los miembros de los roles de 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 (solo trabajos que les pertenecen) |
Programación de trabajos (solo 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 para 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 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 no les pertenezcan ya. Para los miembros de SQLAgentReaderRole solo 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 los roles de base de datos del Agent 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 (solo trabajos que les pertenecen) |
No |
Sí (solo programaciones que les pertenecen) |
No |
Ver lista (enumerar) |
Sí 2 |
Sí |
Sí |
Sí |
Sí 3 |
Habilitar o deshabilitar |
No |
Sí (solo trabajos que les pertenecen) |
No |
Sí (solo programaciones que les pertenecen) |
No aplicable |
Ver propiedades |
No |
Sí |
Sí |
Sí |
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 |
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í (solo 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 para 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 el rol con más privilegios de todos los roles fijos de base de datos del Agente SQL Server. Incluye todos los permisos de 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 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 este rol 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 este rol 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 los roles de database del Agent 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 (solo trabajos que les pertenecen) |
No |
Sí (solo 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í (solo trabajos que les pertenecen) |
No |
Sí (solo 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í (solo 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 este rol 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 este rol especifica cualquier otro parámetro para este procedimiento almacenado, la ejecución del procedimiento producirá un error.
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 es miembro 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.
Vea también
Referencia
sp_update_schedule (Transact-SQL)
sp_notify_operator (Transact-SQL)
sp_purge_jobhistory (Transact-SQL)