Implementar a segurança do SQL Server Agent

O SQL ServerAgent permite que o administrador do banco de dados execute cada etapa de trabalho em um contexto de segurança que possui apenas as permissões necessárias para executá-la, as quais são determinadas por um proxy do SQL ServerAgent. 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. Um proxy pode ser especificado para mais de uma etapa de trabalho. Para etapas de trabalho que requerem as mesmas permissões, use o mesmo 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 Server Agent.

Concedendo acesso ao SQL Server Agent

Para usar o SQL Server Agent, os usuários devem ser membros de uma ou mais das seguintes funções de banco de dados fixas:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Essas funções são armazenadas no banco de dados msdb. Por padrão, nenhum usuário é membro dessas funções de banco de dados. A associação a essas funções deve ser explicitamente concedida. Usuários que são membros da função de servidor fixa sysadmin têm acesso total ao SQL Server Agent e não precisam ser membros dessas funções de banco de dados fixas para usar o SQL 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ó SQL Server Agent não estará disponível quando ele se conectar ao SQL Server usando o SQL 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. Para obter mais informações sobre as permissões específicas que estão associadas a cada uma dessas funções, consulte Funções de banco de dados fixas do SQL Server Agent.

Membros da função de servidor fixa sysadmin têm permissão para criar, modificar e excluir contas proxy. 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 Server Agent, que é a conta usada para iniciar o SQL Server Agent.

Diretrizes

Siga estas diretrizes para melhorar a segurança de sua implementação do SQL Server Agent:

  • Crie contas de usuário dedicadas especificamente para proxies e utilize somente essas para executar etapas de trabalho.

  • Conceda as permissões necessárias apenas a contas de usuário de proxy. Conceda apenas as permissões realmente necessárias para executar as etapas de trabalho atribuídas a uma determinada conta proxy.

  • Não execute o serviço do SQL Server Agent sob uma conta do Microsoft Windows que não seja membro do grupo Administradores do Windows.

  • Os proxies são tão seguros quanto o repositório de credencial do SQL Server.

  • Se as operações de gravação de usuário puderem gravar no log de eventos NT, eles poderão gerar alertas via SQL Server Agent.

  • Não especifique a conta de administração NT como uma conta de serviço ou conta proxy.

  • Observe que o SQL Server e o SQL Server Agent têm acesso aos ativos um do outro. Os dois serviços compartilham um único espaço de processamento e o SQL Server Agent é um sysadmin no serviço do SQL Server.

  • Quando um TSX se inscrever com um MSX, o sysadmins do MSX obtém controle total sobre a instância de TSX do SQL Server.

  • ACE é uma extensão e não pode se chamar. 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 depende das seguintes DLLs de configuração de propriedade do SSDP, porque essas APIs de DLLs são chamadas pelo ACE:

    • SCO – Microsoft.SqlServer.Configuration.Sco.dll, incluindo novas validações de SCO para contas virtuais

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

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

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

Consulte também

Referência

sp_addrolemember (Transact-SQL)

sp_droprolemember (Transact-SQL)

Conceitos

Funções predefinidas

Segurança e proteção (Mecanismo de Banco de Dados)