ID do artigo: 316989 - Última revisão: sexta-feira, 21 de setembro de 2007 - Revisão: 5.7

Mensagem de erro ao criar uma conexão de dados confiável do ASP.NET para SQL Server: "Login failed for user: 'AccountName'"

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando você cria uma conexão confiável da Microsoft ASP.NET para Microsoft SQL Server, você receberá a seguinte mensagem de erro:
Falha de logon do usuário ' MachineName\ASPNET
Computadores que executam o Internet Information Services (IIS) 6.0, você receberá a seguinte mensagem de erro:
Falha de logon do usuário 'NT AUTHORITY\NETWORK SERVICE'
Observação Você receber uma dessas mensagens de erro especificamente quando você usa segurança integrada (quando você inclui o segurança integrada = sspi atributo em uma seqüência de conexão).

Causa

Ao usar o ASP.NET, o contexto de segurança padrão é a conta ASPNET (ou a conta NetworkService, para um aplicativo que é executado no IIS 6.0) de aspnet_wp.exe (ou W3wp.exe, para um aplicativo que é executado no IIS 6.0) e a solicitação para o SQL Server. Por padrão, a conta ASPNET (ou a conta NetworkService, para um aplicativo que é executado no IIS 6.0) não tem as permissões no SQL Server e, portanto, ele não pode acessar o banco de dados.

Resolução

Para resolver esse problema, use um dos seguintes métodos:
  • método 1 Alterar o contexto de segurança do ASP.NET programaticamente processo do operador para um usuário que tem as permissões corretas do SQL Server.
  • método 2 Altere a configuração padrão do ASP.NET para que o processo do operador do ASP.NET é iniciado e é executado no contexto de um usuário que tenha as permissões corretas no SQL Server.
  • método 3 Conceda as permissões corretas no SQL Server para que a conta ASPNET (ou a conta NetworkService, para um aplicativo que é executado no IIS 6.0) tenha o acesso apropriado aos recursos necessários.

    Observação Esse método fará com que todos os aplicativos da Web no servidor têm o direito correspondente no computador que está executando o SQL Server.

Situação

Esse comportamento é por design.

Mais Informações

Etapas para reproduzir o problema

  1. Crie um novo aplicativo da Web do Microsoft Visual Basic .NET em um computador que está executando o ASP.NET e SQL Server.
  2. Adicione o seguinte código ao evento Page_Load da página WebForm1.aspx que foi criado usando o projeto:
    Dim con As New System.Data.SqlClient.SqlConnection("data source=localhost;integrated security=sspi;database=northwind")
     con.open()
     con.close()
  3. Criar o projeto e em seguida, abra a página WebForm1.aspx no navegador.
  4. Você receber a mensagem de erro mencionada na seção "Sintomas".

Referências

Para obter mais informações sobre como alterar programaticamente o contexto de segurança do processo de trabalho do ASP.NET, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
306158  (http://support.microsoft.com/kb/306158/ ) Como implementar a representação em um aplicativo ASP.NET
307002  (http://support.microsoft.com/kb/307002/ ) ASP/ODBC/SQL Server Erro 0x80040E4D "Login failed for user '(null)'"
253500  (http://support.microsoft.com/kb/253500/ ) Mensagem de erro "Cliente não é possível estabelecer conexão" ao se conectar de ASP para o SQL Server
306586  (http://support.microsoft.com/kb/306586/ ) Solução de problemas erro 80004005 "Falha de logon" no ASP
247931  (http://support.microsoft.com/kb/247931/ ) Métodos de autenticação para conexões ao SQL Server no ASP
315158  (http://support.microsoft.com/kb/315158/ ) CORRECÇÃO: O ASP.NET não funciona com a conta ASPNET padrão em um controlador de domínio
824308  (http://support.microsoft.com/kb/824308/ ) Erro: Conta IWAM não recebe o impersonate privilégio para ASP.NET 1.1 em um controlador de domínio do Windows 2000 com SP4
Para obter mais informações sobre como alterar a configuração padrão de contexto de segurança ASP.NET, visite a seguinte site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms978378.aspx (http://msdn2.microsoft.com/en-us/library/ms978378.aspx)
Para obter mais informações sobre como adicionar a conta ASPNET para o SQL Server, consulte o tópico "Adicionando um usuário ou grupo Windows" nos manuais online do SQL Server.

A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ADO.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft ADO.NET 2.0
Palavras-chave: 
kbmt kberrmsg kbfaq kbhttpruntime kbnofix kbprb kbsecurity KB316989 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 316989  (http://support.microsoft.com/kb/316989/en-us/ )