Eu diria que há apenas dois motivos válidos para usar a autenticação do SQL:
- Você está se conectando de fora do domínio, de modo que a autenticação integrada
- Você está executando um benchmark TPC-C e todo ciclo conta. A autenticação do SQL é um pouco mais rápida.
Para o cenário que você está propondo (o host do servidor da Web está completamente comprometido), nada pode protegê-lo. O hacker pode fazer no servidor de banco de dados pelo menos tudo o que o servidor web pode fazer . E eu diria que a defesa em profundidade pode ensiná-lo a minimizar a perda em tal caso: reduzir os direitos de banco de dados da conta usada pelo servidor web para o mínimo absolutamente necessário e nada mais. Segundo, certifique-se de que o host do servidor web está comprometido e não pode ser usado para elevar privilégios superiores à conta do servidor web (ou seja, não há outro serviço no host WWW que use credenciais com privilégios mais altos no banco de dados do que na conta WWW). Esses são princípios básicos de segurança e não têm nada a ver com o esquema de autenticação usado.
Embora a autenticação sql auth vs. windows não ofereça uma vantagem clara em seu cenário, há outros problemas a serem considerados:
- Aplicação de políticas centralizadas: você tem um local para configurar suas políticas de senha, incluindo validade e expiração da senha, encerramento da conta, etc.
- Controle sobre representação e delegação de confiança. Uma vez que a autenticação sql é usada em uma cadeia de delegação de confiança, todas as apostas são desativadas, já que isso não é uma 'delegação' real e, portanto, não está mais sob as restrições impostas pelas políticas
- Auditoria: o sql auth nem é visto pelo seu LSA, portanto, toda a sua infraestrutura de auditoria é simplesmente ignorada. Você precisa adicionar explicitamente os registros que o SQL produz sobre os eventos auth do sql, mas está misturando maçãs e laranjas, já que esses eventos possuem origem, provedor e esquema diferentes no log de eventos
Uma última nota: o protocolo TDS expõe a senha de autenticação sql em texto não criptografado sobre o tráfego, mas isso geralmente é mitigado solicitando-se a criptografia SSL do tráfego.
Então, por que você vê os hosts sql auth WWW que armazenam a senha em clear no arquivo web.config? Esses são os bad desenvolvedores / administradores, não seja um deles.
msdn.microsoft.com/pt-br/library/aa378326 (VS.85) .aspx
technet.microsoft.com/pt-br/library/ms189067.aspx