Implementar la seguridad del Agente SQL ServerImplement SQL Server Agent Security

SE APLICA A: síSQL Server síAzure SQL Database (solo Instancia administrada) noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Importante

En Instancia administrada de Azure SQL Database, la mayoría de las características de agente SQL Server son compatibles actualmente, aunque no todas.On Azure SQL Database Managed Instance, most, but not all SQL Server Agent features are currently supported. Vea Diferencias de T-SQL en Instancia administrada de Azure SQL Database para obtener más información.See Azure SQL Database Managed Instance T-SQL differences from SQL Server for details.

SQL ServerSQL Server El Agente le permite al administrador de la base de datos ejecutar cada paso de trabajo en un contexto seguro que solo tiene los permisos necesarios para realizar ese paso de trabajo, que está determinado por un servidor proxy del Agente SQL ServerSQL Server .Agent lets the database administrator run each job step in a security context that has only the permissions required to perform that job step, which is determined by a SQL ServerSQL Server Agent proxy. Para establecer los permisos para un paso de trabajo concreto, cree un proxy que disponga de los permisos necesarios y, a continuación, asigne ese proxy al paso de trabajo.To set the permissions for a particular job step, you create a proxy that has the required permissions and then assign that proxy to the job step. Se puede especificar un servidor proxy en más de un paso de trabajo.A proxy can be specified for more than one job step. Para los pasos de trabajo que necesitan los mismos permisos se utiliza el mismo proxy.For job steps that require the same permissions, you use the same proxy.

En las siguientes secciones se explica el rol de base de datos que debe conceder a los usuarios para que puedan crear o ejecutar trabajos mediante el Agente SQL ServerSQL Server .The following section explains what database role you must grant to users so they can create or execute jobs by using SQL ServerSQL Server Agent.

Conceder acceso al Agente SQL ServerGranting Access to SQL Server Agent

Para utilizar el Agente SQL ServerSQL Server , los usuarios deben ser miembros de uno o más de los siguientes roles fijos de base de datos:To use SQL ServerSQL Server Agent, users must be a member of one or more of the following fixed database roles:

  • SQLAgentUserRoleSQLAgentUserRole

  • SQLAgentReaderRoleSQLAgentReaderRole

  • SQLAgentOperatorRoleSQLAgentOperatorRole

Estos roles se almacenan en la base de datos msdb .These roles are stored in the msdb database. De manera predeterminada, ningún usuario es miembro de estos roles de base de datos.By default, no user is a member of these database roles. La pertenencia a estos roles se debe conceder explícitamente.Membership in these roles must be granted explicitly. Los usuarios que sean miembros del rol fijo de servidor sysadmin tienen acceso total al Agente SQL ServerSQL Server , y no necesitan ser miembros de estos roles fijos de base de datos para utilizar el Agente SQL ServerSQL Server .Users who are members of the sysadmin fixed server role have full access to SQL ServerSQL Server Agent, and do not need to be a member of these fixed database roles to use SQL ServerSQL Server Agent. Si un usuario no es miembro de uno de estos roles de base de datos ni del rol sysadmin , el nodo del Agente SQL ServerSQL Server no estará disponible para ellos cuando se conecten con SQL ServerSQL Server mediante SQL Server Management StudioSQL Server Management Studio.If a user is not a member of one of these database roles or of the sysadmin role, the SQL ServerSQL Server Agent node is not available to them when they connect to SQL ServerSQL Server by using SQL Server Management StudioSQL Server Management Studio.

Los miembros de estos roles de base de datos pueden ver y ejecutar trabajos que les pertenecen, así como crear pasos de trabajos que se ejecuten como una cuenta de proxy existente.Members of these database roles can view and execute jobs that they own, and create job steps that run as an existing proxy account. Para información sobre los permisos específicos asociados a cada uno de estos roles, consulte Roles fijos de base de datos del Agente SQL Server.For more information about the specific permissions that are associated with each of these roles, see SQL Server Agent Fixed Database Roles.

Los miembros del rol fijo de servidor sysadmin tienen permiso para crear, modificar o eliminar cuentas de proxy.Members of the sysadmin fixed server role have permission to create, modify, and delete proxy accounts. Los miembros del rol sysadmin tienen permiso para crear pasos de trabajo que no especifiquen un proxy, sino que se ejecuten como la cuenta de servicio del Agente SQL ServerSQL Server , que es la cuenta que se utiliza para iniciar el Agente SQL ServerSQL Server .Members of the sysadmin role have permission to create job steps that do not specify a proxy, but instead run as the SQL ServerSQL Server Agent service account, which is the account that is used to start SQL ServerSQL Server Agent.

InstruccionesGuidelines

Siga estas instrucciones para mejorar la seguridad de la implementación del Agente SQL ServerSQL Server :Follow these guidelines to improve the security of your SQL ServerSQL Server Agent implementation:

  • Crear cuentas de usuario dedicadas especialmente para servidores proxy y utilizarlas únicamente para ejecutar pasos de trabajos.Create dedicated user accounts specifically for proxies, and only use these proxy user accounts for running job steps.

  • Conceder solo los permisos necesarios a las cuentas de usuarios de proxy.Only grant the necessary permissions to proxy user accounts. Conceder únicamente los permisos realmente necesarios para ejecutar los pasos de trabajo que están asignados a una cuenta de proxy determinada.Grant only those permissions actually required to run the job steps that are assigned to a given proxy account.

  • No ejecutar el servicio del Agente SQL ServerSQL Server en una cuenta de Microsoft Windows que sea miembro del grupo Administradores de Windows.Do not run the SQL ServerSQL Server Agent service under a Microsoft Windows account that is a member of the Windows Administrators group.

  • Los servidores proxy son tan seguros como el almacén de credenciales de SQL ServerSQL Server .Proxies are only as secure as the SQL ServerSQL Server credential store.

  • Si las operaciones de escritura de usuario pueden escribir en el registro de eventos de NT, pueden producir alertas mediante el Agente SQL ServerSQL Server .If user write operations can write to the NT Event log, they can raise alerts via SQL ServerSQL Server Agent.

  • No especifique la cuenta de administración de NT como una cuenta de servicio o una cuenta de proxy.Do not specify the NT Admin account as a service account or proxy account.

  • Tenga en cuenta que SQL ServerSQL Server y el Agente de SQL ServerSQL Server tienen acceso a activos entre sí.Note that SQL ServerSQL Server and SQL ServerSQL Server Agent have access to each other's assets. Los dos servicios comparten un único espacio del proceso y el Agente SQL ServerSQL Server es un administrador del sistema en el servicio SQL ServerSQL Server .The two services share a single process space and SQL ServerSQL Server Agent is a sysadmin on the SQL ServerSQL Server service.

  • Cuando un servidor de destino (TSX) se registra con un servidor principal (MSX), los administradores del sistema del servidor principal obtienen el control total en la instancia del servidor de destino de SQL ServerSQL Server.When a TSX enlists with an MSX, the MSX sysadmins gets total control over the TSX instance of SQL ServerSQL Server.

  • ACE es una extensión y no se puede invocar a sí misma.ACE is an extension and cannot invoke itself. La invocación de ACE la realiza Chainer ScenarioEngine.exe, también conocido como Microsoft.SqlServer.Chainer.Setup.exe, u otro proceso de host.ACE is invoked by Chainer ScenarioEngine.exe - also known as Microsoft.SqlServer.Chainer.Setup.exe - or it can be invoked by another host process.

  • ACE depende de las DLL de configuración siguientes pertenecientes a SSDP, ya que ACE llama a las siguientes API de DLL:ACE depends on the following configuration DLL's owned by SSDP, because those API's of DLL's are called by ACE:

    • SCO: Microsoft.SqlServer.Configuration.Sco.dll, incluidas las nuevas validaciones de SCO para las cuentas virtualesSCO - Microsoft.SqlServer.Configuration.Sco.dll, including new SCO validations for virtual accounts

    • Clúster: Microsoft.SqlServer.Configuration.Cluster.dllCluster - Microsoft.SqlServer.Configuration.Cluster.dll

    • SFC: Microsoft.SqlServer.Configuration.SqlConfigBase.dllSFC - Microsoft.SqlServer.Configuration.SqlConfigBase.dll

    • Extensión: Microsoft.SqlServer.Configuration.ConfigExtension.dllExtension - Microsoft.SqlServer.Configuration.ConfigExtension.dll

Consulte tambiénSee Also

Usar los roles predefinidosUsing Predefined Roles
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL)
Seguridad y protección (motor de base de datos)Security and Protection (Database Engine)