Implementar a segurança do SQL Server AgentImplement SQL Server Agent Security

SQL ServerSQL Server O Agent permite que o administrador do banco de dados execute cada etapa de trabalho em um contexto de segurança que tem apenas as permissões necessárias para executá-la, as quais são determinadas por um proxy do SQL ServerSQL Server Agent. Agent proxy. Para definir as permissões para uma etapa de trabalho em particular, crie um proxy com as permissões necessárias e atribua-o à etapa de trabalho.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. Um proxy pode ser especificado para mais de uma etapa de trabalho.A proxy can be specified for more than one job step. Para etapas de trabalho que requerem as mesmas permissões, use o mesmo proxy.For job steps that require the same permissions, you use the same proxy.

A seção a seguir explica qual função de banco de dados deve ser concedida aos usuários para que eles possam criar ou executar trabalhos usando o SQL ServerSQL Server Agent.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.

Concedendo acesso ao SQL Server AgentGranting Access to SQL Server Agent

Para usar o SQL ServerSQL Server Agent, os usuários devem ser membros de uma ou mais das seguintes funções de banco de dados fixas:To use SQL ServerSQL Server Agent, users must be a member of one or more of the following fixed database roles:

  • SQLAgentUserRoleSQLAgentUserRole

  • SQLAgentReaderRoleSQLAgentReaderRole

  • SQLAgentOperatorRoleSQLAgentOperatorRole

Essas funções são armazenadas no banco de dados msdb .These roles are stored in the msdb database. Por padrão, nenhum usuário é membro dessas funções de banco de dados.By default, no user is a member of these database roles. A associação a essas funções deve ser explicitamente concedida.Membership in these roles must be granted explicitly. Usuários que são membros da função de servidor fixa sysadmin têm acesso completo ao SQL ServerSQL Server Agent e não precisam ser membros dessas funções de banco de dados fixas para usar o SQL ServerSQL Server Agent.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. Se um usuário não for membro dessas funções de banco de dados fixas ou da função sysadmin , o nó do SQL ServerSQL Server Agent não estará disponível quando ele se conectar ao SQL ServerSQL Server usando o 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.

Os membros dessas funções de banco de dados podem visualizar e executar tarefas de sua propriedade, bem como criar etapas de trabalho executadas como uma conta 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 obter mais informações sobre as permissões específicas associadas a cada uma dessas funções de banco de dados fixas do Agent, consulte Funções de banco de dados fixas do SQL Server Agent.For more information about the specific permissions that are associated with each of these roles, see SQL Server Agent Fixed Database Roles.

Membros da função de servidor fixa sysadmin têm permissão para criar, modificar e excluir contas proxy.Members of the sysadmin fixed server role have permission to create, modify, and delete proxy accounts. Membros da função sysadmin têm permissão para criar etapas de trabalho que não especificam um proxy, mas são executadas como a conta de serviço do SQL ServerSQL Server Agent, que é a conta usada para iniciar o SQL ServerSQL Server Agent.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.

DiretrizesGuidelines

Siga estas diretrizes para melhorar a segurança de sua implementação do SQL ServerSQL Server Agent:Follow these guidelines to improve the security of your SQL ServerSQL Server Agent implementation:

  • Crie contas de usuário dedicadas especificamente para proxies e utilize somente essas para executar etapas de trabalho.Create dedicated user accounts specifically for proxies, and only use these proxy user accounts for running job steps.

  • Conceda as permissões necessárias apenas a contas de usuário de proxy.Only grant the necessary permissions to proxy user accounts. Conceda apenas as permissões realmente necessárias para executar as etapas de trabalho atribuídas a uma determinada conta proxy.Grant only those permissions actually required to run the job steps that are assigned to a given proxy account.

  • Não execute o serviço do SQL ServerSQL Server Agent sob uma conta do Microsoft Windows que não seja membro do grupo Administradores do Windows.Do not run the SQL ServerSQL Server Agent service under a Microsoft Windows account that is a member of the Windows Administrators group.

  • Os proxies são tão seguros quanto o repositório de credencial do SQL ServerSQL Server .Proxies are only as secure as the SQL ServerSQL Server credential store.

  • Se as operações de gravação de usuário puderem gravar no log de eventos NT, eles poderão gerar alertas via SQL ServerSQL Server Agent.If user write operations can write to the NT Event log, they can raise alerts via SQL ServerSQL Server Agent.

  • Não especifique a conta de administração NT como uma conta de serviço ou conta proxy.Do not specify the NT Admin account as a service account or proxy account.

  • Observe que o SQL ServerSQL Server e o SQL ServerSQL Server Agent têm acesso aos ativos um do outro.Note that SQL ServerSQL Server and SQL ServerSQL Server Agent have access to each other’s assets. Os dois serviços compartilham um único espaço de processamento e o SQL ServerSQL Server Agent é um sysadmin no serviço do 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.

  • Quando um TSX se inscrever com um MSX, o sysadmins do MSX obtém controle total sobre a instância de TSX do 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 é uma extensão e não pode se chamar.ACE is an extension and cannot invoke itself. ACE é chamado por Chainer ScenarioEngine.exe, também conhecido como Microsoft.SqlServer.Chainer.Setup.exe, ou pode ser chamado por outro processo do 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 das seguintes DLLs de configuração de propriedade do SSDP, porque essas APIs de DLLs são chamadas pelo ACE: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, incluindo novas validações de SCO para contas virtuaisSCO – Microsoft.SqlServer.Configuration.Sco.dll, including new SCO validations for virtual accounts

    • Cluster – Microsoft.SqlServer.Configuration.Cluster.dllCluster – Microsoft.SqlServer.Configuration.Cluster.dll

    • SFC – Microsoft.SqlServer.Configuration.SqlConfigBase.dllSFC – Microsoft.SqlServer.Configuration.SqlConfigBase.dll

    • Extensão – Microsoft.SqlServer.Configuration.ConfigExtension.dllExtension – Microsoft.SqlServer.Configuration.ConfigExtension.dll

Consulte tambémSee Also

Usando funções predefinidasUsing Predefined Roles
sp_addrolemember (Transact-SQL)sp_addrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)sp_droprolemember (Transact-SQL)
Segurança e proteção (Mecanismo de Banco de Dados)Security and Protection (Database Engine)