IIS7, SQL Server 2008 e seqüências de caracteres de conexão / autenticação

1

OK pessoal,

Minha empresa hospeda alguns sites. Todos esses sites exigem uma conexão com o SQL Server 2008.

Quando implantamos um site em um novo servidor, constantemente temos que modificar o web.config para conter uma string de conexão com o nome de usuário e senha apropriados. Isso requer que a pessoa implemente para configurar um usuário para esse banco de dados com todas as permissões apropriadas e, em seguida, modifique o arquivo de configuração.

O que eu gostaria de fazer é, em vez de criar um usuário para cada banco de dados, criar um usuário com permissões para cada db e não especificar um nome de usuário e senha na configuração. Isso economizaria muito tempo, e acredito que seja mais seguro (os clientes têm acesso ao web.config via ftp, mas muitas vezes não os queremos no banco de dados).

Além disso, isso deve funcionar onde o SQL Server existe fora do domínio atual. Parece que isso pode frustrar o uso da Segurança Integrada do Windows ...

Eu nunca usei nenhuma configuração além de especificar o nome de usuário e a senha (acesso ao usuário do domínio do Windows mapeado). Parece que preciso usar o Windows Integrated Security, mas não consigo encontrar nada no MSDN para o IIS 7.

Os pensamentos de qualquer pessoa sobre segurança e configuração serão bem-vindos.

    
por Mario 05.10.2009 / 23:07

2 respostas

2

Autenticação integrada é o que você está procurando, mas isso começa a ficar complicado quando não está em um domínio. Especialmente quando o Windows 2008 está sendo usado. Não gosta do Windows Auth entre máquinas que não estão em um domínio.

Supondo que você mantenha o Autenticação Integrada, você pode configurar cada site para executar em seu próprio pool de aplicativos e configurar cada Pool de Aplicativos para ser executado em sua própria conta, para que as contas não tenham direitos sobre os outros bancos de dados.

Se os clientes tivessem direitos de FTP para o servidor da Web, eles poderiam fazer upload de arquivos que permitiriam que eles visualizassem os dados de outros clientes, o que seria um grande não-não.

Do ponto de vista da segurança, fazer tudo como uma única conta é um plano ruim. Uma conta por cliente (Windows ou SQL) é um plano muito melhor para usar.

    
por 06.10.2009 / 00:40
0

Você está no caminho certo. O que você está procurando é a autenticação integrada. Pegue uma string de conexão para Auth Integrado aqui: link .

No IIS7, crie um usuário de domínio personalizado para o pool de aplicativos no qual seu site é executado. Para melhor segurança, certifique-se de que cada site tenha seu próprio pool de aplicativos com um usuário personalizado. Certifique-se de conceder a esse usuário acesso ao disco para que o site funcione. Em seguida, conceda a esse usuário personalizado acesso ao banco de dados também (usando a autenticação do Windows). É mais fácil se você usar um usuário de domínio, embora possa usar usuários locais, desde que o nome de usuário e a senha sejam idênticos nos servidores IIS e SQL.

Essencialmente, isso significa que o usuário do pool de aplicativos será conectado ao sql server em vez de um nome de usuário e senha específicos na string de conexão.

    
por 06.10.2009 / 00:03