CONFIGURANDO AS CONTA DE SERVIÇO DO SQL SERVER
Um dos pré-requisitos para se ter um ambiente seguro é configurar as conta de serviço do SQL Server com um usuário do windows que não possua privilégios administrativos nos servidores e sistemas de arquivos.
Não é necessário que o usuário de serviço seja incluído em nenhum grupo especial com poderes de administradores.
Em questão de segurança da conta de serviço do SQL Server, quanto menos privilégio a conta tiver, melhor será.
São inúmeros os motivos que nos direcionam a aumentar o nível de segurança nesse ponto. Alterar a conta de serviço do SQL Server é interessante para os seguintes ítens:
-
Diminuir as possibilidades execução de comandos não autorizados nos servidores.
-
Melhorar o controle das permissões de acesso ao servidor.
-
Limitar acessos desnecessários ao sistema de arquivo.
Para configurar os serviços do SQL Server para iniciar com uma conta sem privilégios, seja uma conta local ou de domínio, é necessário seguir algumas recomendações obrigatórias, abaixo, segue roteiro para essa configuração.
Os procedimentos são simples e eu garanto que mesmo os inexperientes conseguirão, em menos de 15 minutos, executar os procedimentos existentes nesse passo-a-passo.
Então, deixemos de bla, bla, blá…e vamos logo ao que interessa:
1 – Crie uma conta local ou de domínio.
Crie uma conta local ou de domínio. Certifique-se de marcar a opção "A senha nunca expira" para evitar que essa conta entre em uma política de alteração de senha, pois, como não existirá um usuário fisicamente usando a conta, isso evitará que a senha expire e o SQL Server tenha problemas.
2 – Conceda a essa conta acesso total (full) aos diretórios de instalação.
Se o SQL Server foi instalado no local padrão, então o local é: "C:Arquivos de programasMicrosoft SQL Server"
Caso os arquivos de dados dos databases estejam em outro local, não se esqueça de conceder acesso full para essa conta de serviço.
3 – Adicione o login do usuário no SQL Server e adicione-o na role sysadmin.
Uma das exigências de se configurar uma conta de serviço que não tenha privilégios desnecessários no windows é que a nível de SQL, o usuário necessita de acesso irrestrito, por isso, existe a necessidade de que o usuário seja adicionado a role sysadmin.
Para adicionar basta executar no query editor (SSMS ou QA) os comandos abaixo:
Caso um login para o usuário não exista crie:
Create login [nome_login] from windows
Adicione o login na role sysadmin:
sp_addsrvrolemember [nome_usuário],sysadmin
Dúvidas sobre esses comandos, recomendo consultar o BOL.
4 – Altere a conta de serviço para o usuário definido.
Utilizando o gerenciador de serviços("Services.msc"), altere a conta de serviço para o usuário definido para essa finalidade.
5 – Conceda permissões nas diretivas locais.
Conceda à conta de serviço permissões para logon local, logon como serviço, criação de tokens e gerenciamento de memória.
Essas permissões são necessárias para que o usuário possa inicializar os serviços em background.
Utilize o MMC para iniciar o local policy (diretivas locais ou diretivas de grupo) no WINDOWS, adicione o usuário nas seguintes políticas:
* Create tokens
* Logon local
* Login as a service
* Lock page in memory
6 – Conceda permissão no registro.
Conceda ao usuário acesso full nas chaves citadas abaixo, isso para que o usuário de serviço tenha acesso a parâmetros que só seriam acessíveis se ele pertencesse a grupos com poderes administrativos no servidor.
Só são 04 chaves para dar acesso full:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServer
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSQLSERVER
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSQLSERVERAGENT
Nota:
Observe que as últimas duas chaves apontam para caminhos que são para instalação de instância default, caso a instância seja nomeada, então, procure por MSSQL$SQL2000 ou SQLSERVERAGEN$SQL2000, onde $SQL2000 é um exemplo de uma instância nomeada, em resumo sempre será algo do tipo:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMSSQL$[NOME_DA_INSTANCIA_NOMEADA]
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSQLSERVERAGENT$[NOME_DA_INSTANCIA_NOMEADA]
Pronto, esses são os passos para que você possa configurar uma conta de serviço sem privilégios administrativos.
Para mim, esses passos já estão no sangue, são procedimento bastantes simples e que não levam mais de 5 minutos para serem realizados.
Espero que os especialistas que utilizarem os procedimentos contidos nesse blog possam comentar e sugerir melhoramentos aos procedimentos, se acharem pertinentes.
Um grande abraço e até a próxima.
Emanuel Peixoto.