Buscando algumas recomendações sobre como lidar com uma conta SQL, que criará contas SQL adicionais no futuro...
Cenário:
Nosso aplicativo de produção Admin se conecta ao SQL usando uma conta chamada: Admin_Main , conforme indicado na string de conexão. Quando alguém cria um novo usuário no aplicativo Admin e atribui a ele uma licença de relatórios, uma nova conta SQL é criada na instância para o novo usuário. A conta Admin_Main é usada para criar esta conta.
Eu, é claro, não quero adicionar mais permissões à conta Admin_Main do que o necessário, então minha pergunta é;
Quais são as permissões que devo adicionar a essa conta, para que ela possa criar novas contas do SQL Server, mas não tenha permissões de administrador na instância?
Desde já, obrigado!
Você pode atribuir a função
securityadmin
de servidor à conta Admin_Main .A
securityadmin
função de servidor é documentada como:Referência: funções no nível do servidor (Microsoft | Docs)
Vamos tentar e ver até onde podemos chegar...
Criando o login do SQL Server Admin_Main
Criaremos um novo logon do SQL Server e atribuiremos a esse usuário a
securityadmin
função de servidor:Isso tudo é feito com uma conta que tem a
sysadmin
função de servidor e o resultado é:Entrar com Admin_Main
Você pode então abrir uma nova janela de consulta de banco de dados usando Admin_Main SQL Serer Login e a senha correspondente. Depois de ter feito isso...
Atribuindo privilégios mais altos
...seu novo usuário certamente tentará aumentar seus privilégios adicionando-se à
sysadmin
função de servidor:Isso resulta no seguinte:
Portanto, o logon do SQL Server não pode atribuir a si mesmo privilégios mais altos.
Criando um novo usuário (ou: até onde posso chegar?)
Visto que Admin_Main agora tem permissão para criar novos logins do SQL Server, vamos criar um novo usuário enquanto ainda estiver logado como Admin_Main e adicionar algumas funções de nível de servidor. Faremos isso em várias etapas para descobrir quando a atribuição de funções do SQL Server falhará:
Criar login
Entrada
Resultado
Atribuir função de administrador de segurança
Entrada
Resultado
Atribuir função sysadmin SQL Server
Entrada
Resultado
Conclusão
Você terá que atribuir a função do SQL Server
securityadmin
ao login do SQL Server Admin_Main para permitir que essa conta crie novos logins do SQL Server e/ou logins do SQL Server autenticados pelo Windows....e você não pode atribuir permissões/privilégios a outras contas que suas contas iniciais ainda não possuem.