Como: Acesso o SQL servidor usando um usuário do domínio Windows mapeada

Por padrão, quando um aplicativo ASP.net é executado, o aplicativo é executado em um contexto de uma conta de usuário local especial nomeada ASPNET (no Microsoft Windows   2000 e Microsoft Windows   XP) ou NETWORK SERVICE (no Microsoft Windows Server   2003).Essa conta de usuário tem direito a acesso limitado.De qualquer forma, a conta ASPNET é local para o servidor Web.Devido à conta ASPNET ser local ao servidor WEB, ela não é reconhecida como um usuário de um computador remoto.Para lidar com essa limitação, você pode rodar o seu aplicativo no contexto de um usuário do domínio Windows que é reconhecido tanto no servidor Web como no computador que está rodando o Microsoft SQL Server.

Mapear seu processo do aplicativo para uma conta de usuário do domínio Windows requer a configuração do seguinte:

  • O Servidor Web.

    Você deve verificar se a conta de usuário do domínio Windows que foi especificado tem permissões suficientes (e não mais) para rodar um aplicativo Web.

  • Seu Aplicativo.

    Você deve configurar o arquivo Web.config para o ASP.NET reconhecer o nome do domínio da conta do usuário.

    Observação:

    Para informações sobre os arquivos Machine.config e Web.config, veja Visão Geral da Configuração ASP.NET.

  • A Sequência de conexão.

    Quando você cria uma string de conexão para um objeto de conexão em seu aplicativo, você deve especificar que sua string de conexão usará a segurança integrada do Windows.

  • Servidor SQL.

    Você deve adicionar a conta especificada de usuário do domínio como um logon de usuário do Servidor SQL.

Configurando uma conta de usuário no Servidor Web.

Para determinar as permissões do usuário para a conta de usuário do domínio Windows

  1. No servidor Web, use as ferramentas administrativas do Windows para verificar se a conta de usuário mapeada do domínio Windows possui as permissões necessárias.

    Para informações detalhadas, consulte ASP.NET Required Access Control Lists (ACLs).

  2. Execute aspnet_regiis.exe com a opção -ga para conceder as permissões de usuários comuns que são requeridos pela identidade que será usada para a representação no aplicativo.

Mapeando para a conta de usuário do Windows e habilitando representação

Após estabelecer os direitos de usuário corretos para a conta de usuário do domínio, configure a representação de identidade do aplicativo.

Observação de segurança:

Quando você coloca as credenciais de um usuário no arquivo Web.config, existem potenciais ameaças de segurança.Usuários com permissão de acesso à pasta contendo o arquivo Web.config podem ler o arquivo, e assim ver as credenciais.Para detalhes sobre como se proteger contra essa ameaça, veja Criptografando informações de configuração usando configuração protegida.

Para configurar o aplicativo Web para representação

  • Abra o arquivo Web.config para o seu aplicativo, e então adicione o seguinte código de representação de identidade:

    <identity impersonate="true" userName="domain\username" password="********"/>
    

    Substitua a senha correta pelo valor listado no exemplo anterior.

    Observação:

    Os elementos do arquivo web.config diferenciam maiúsculas de minúsculas.

Usando a Segurança do Windows na Cadeia de Conexões

Por último, quando você cria uma cadeia de conexão para acessar banco de dados, configure a cadeia de conexão para usar a segurança integrada do Windows.

Para usar a segurança integrada do Windows em uma sequência de conexão

  • Quando você cria uma string de conexão para o seu aplicativo, não inclua um nome de usuário e uma senha.Ao invés disso, para a sequência de conexão, configure o atributo Integrated Security como SSPI.

    O exemplo de código a seguir mostra uma string de conexão que inclui os atributos apropriados:

    data source=myserver;initial catalog=northwind;Integrated Security=SSPI
    

Para configurar o SQL Server para segurança integrada do Windows

  1. No Windows, clique em Iniciar, aponte para Programs, aponte para Microsoft SQL Server, e clique em Enterprise Manager.

  2. Expanda o nó para o servidor e, em seguida, expanda o nó para o banco de dados para o qual você deseja conceder permissões de usuário.

  3. Clique com o botão direito do mouse emUsers e clique emNew Database User.

  4. Na caixa de diálogo Propriedades de Usuário do Banco de Dados, digite domínio\usuário na caixa Nome do Logon, e clique em OK.

Consulte também

Conceitos

ASP.NET Impersonation