it-swarm-pt.tech

Qual conta de usuário você recomendaria para executar os serviços do SQL Server Express 2008 em um ambiente de desenvolvimento?

A instalação do SQL Server Express 2008 permite atribuir diferentes contas de usuário para cada serviço.

Para um ambiente de desenvolvimento, você usaria um usuário de domínio, usuário local, NT Authority\NETWORK SERCVICE, NT Authority\Local System ou alguma outra conta e por quê?

28
Magnus Lindhe

Sistema local não é recomendado, é uma conta equivalente ao administrador e, portanto, pode levar a uma codificação questionável que tira proveito dos privilégios de administrador que não seriam permitidos em um sistema de produção, já que os administradores/DBAs preocupados com a segurança realmente não gostam de executar serviços como administrador.

Dependendo se a instância do servidor precisará acessar outros recursos do domínio ou não, deve determinar em qual tipo de conta de baixo privilégio ela deve ser executada.

Se ele não precisar acessar nenhum recurso de domínio (não anônimo), normalmente eu crio uma conta local de baixo privilégio exclusiva para sua execução, a fim de obter o benefício adicional de segurança por não ter vários serviços em execução no mesmo contexto de identidade . Lembre-se de que a conta do Serviço Local não é suportada pelos serviços do SQL Server ou do SQL Server Agent.

Se precisar acessar recursos de domínio não anônimo, você terá três opções:

  1. Execute como Serviço de Rede, que também é uma conta de baixo privilégio, mas que mantém as credenciais de rede dos computadores.
  2. Executar em uma conta de serviço local
  3. Execute em uma conta de domínio personalizada com baixos privilégios locais. Uma vantagem de executar sob a conta de desenvolvedor é que é mais fácil anexar depuradores a processos em sua própria identidade sem comprometer a segurança, portanto a depuração é mais fácil (uma vez que as contas não Administradoras não têm o privilégio de anexar um depurador a outro processo de identidades por padrão ) Uma desvantagem do uso de outra conta de domínio é a sobrecarga de gerenciamento dessas contas, especialmente porque cada serviço para cada desenvolvedor deve idealmente ter credenciais exclusivas para que você não tenha vazamentos se o desenvolvedor for embora.

A maior parte do que costumo fazer não exige que o serviço acesse os recursos do domínio, por isso tento usar contas locais de baixo privilégio que eu gerencio. Também corro exclusivamente como um usuário não administrador (e o fiz em XP SP2, Server 2003, Vista e Server 2008 sem grandes problemas), portanto, quando tenho casos em que preciso do serviço Para acessar os recursos do domínio, não me preocupo em usar minhas próprias credenciais de domínio (além disso, não preciso me preocupar com os administradores da rede em criar/manter várias identidades de domínio que não são de produção).

34
Joe Kuemerle

Depende.

  • Sistema local - nunca, é um privilégio muito alto.
  • Serviço de rede - talvez, se você precisar se conectar aos recursos da rede, mas isso é duvidoso.
  • Serviço local - provavelmente a melhor escolha, privilégios limitados, não desbloqueie conexões de rede
  • Usuário interativo local? Ele realmente precisa ter direitos de login ou atuar como usuário?
  • Usuário de domínio? Meu Deus, não, a menos que você esteja acessando unidades de rede a partir dela; se o SQL executar uma falha, um invasor será autenticado no domínio.
14
blowdart

A Microsoft agora tem um bom artigo sobre isso: http://msdn.Microsoft.com/en-us/library/ms143504 (v = sql.105) .aspx

Eles afirmam que o Serviço Local não é permitido para o SQL Server Engine. Pessoalmente, uso o Sistema local apenas para evitar problemas durante o desenvolvimento, mas, na produção, a melhor prática é criar uma conta de serviço no nível do domínio com as permissões necessárias para realizar o trabalho.

4
Schrodo_Baggins