Estou organizando permissões em nossa instância do SQL Server. Desejo parar de usar uma conta do SQL Server e, em vez disso, conceder permissões a grupos do Active Directory e adicionar contas de usuário e serviço a esses grupos. Também estou tentando remover a função sysadmin dos usuários.
Segui as instruções de Grant Admin para uma conta do Active Directory no SQL Server e Negar permissão aos usuários para criar tabelas no master .
Depois de fazer essas alterações, tudo parecia funcionar ... até que tentei iniciar um trabalho manualmente. Recebi a mensagem non-sysadmins have been denied permission to run dts execution job spets without a proxy account
.
Se eu adicionar o grupo AD ao sysadmin, ele funcionará. Se eu remover, falha.
Seguindo a execução de um pacote SSIS do SQL Server Agent usando uma conta proxy , criei um proxy. Então comecei a receber a mensagem Unable to start execution of step 1 reason jobowner doesn't have permission to use proxy 1 for subsystem
.
Como conceder permissão ao Proprietário do Trabalho do SQL Server para Proxy de uma Credencial explica como definir um usuário como principal para o proxy. Não funcionou. Eu tentei adicionar o grupo e um usuário. Mas quando clico em OK e reabro a caixa de diálogo, a que adicionei não está mais listada.
Então, basicamente, como conceder permissão a um usuário não sysadmin para executar trabalhos? De preferência, concedendo-o a um grupo AD em vez de usuários específicos.
Uma postagem para lidar com permissões de trabalho pode ser encontrada em:
Permitir que não sysadmin, não proprietário de um trabalho do SQL Server Agent o execute
Esta postagem descreve:
Usando funções padrão do SQL Agent, como
SQLAgentOperatorRole
.Observação: os grupos do Active Directory não podem fazer login para iniciar um trabalho.
A postagem de Erland Sommarskog http://www.sommarskog.se/grantperm.html#countersignatures descreve o uso de referendas. Esta é uma configuração mais complexa, mas funciona.
Aponta para um
StartAgentJob
procedimento armazenado personalizado para permitir que direitos sejam concedidos dentro do contexto do procedimento. Isso também inclui suporte para AD Groups. O costumeStartAgentJob
contém um código que explicitamente permite que os membros de um Grupo do Active Directory ( mas não o próprio Grupo do Active Directory ) iniciem um trabalho que não lhes pertence.