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 | Sí No se puede cambiar la propiedad de un trabajo. |
Sí | No |
Ver lista (enumerar) | Sí 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. |
Sí | Sí | Sí 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í | 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 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 | Sí | 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) | Sí 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. |
Sí | Sí | Sí | Sí 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 | 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 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) | Sí | Sí 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. |
Sí | Sí | Sí | Sí |
Habilitar o deshabilitar | No | No | Sí 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 | Sí 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 | 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í | Ninguno | 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í | 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.