Artigo: 316989 - Última revisão: sexta-feira, 21 de Setembro de 2007 - Revisão: 5.7

Mensagem de erro quando cria uma ligação de dados fidedignos do ASP.NET para SQL Server: "Falha de início de sessão para o utilizador: '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 | Reduzir tudo

Sintomas

Quando criar uma ligação fidedigna do Microsoft ASP.NET para Microsoft SQL Server, poderá receber a seguinte mensagem de erro:
Falhou o início de sessão para o utilizador ' MachineName\ASPNET
Para computadores que executam serviços de informação Internet (IIS) 6.0, poderá receber a seguinte mensagem de erro:
Falhou o início de sessão para o utilizador 'NT AUTHORITY\NETWORK SERVICE'
Nota Se receber uma destas mensagens de erro especificamente quando utilizar segurança integrada (quando inclui o segurança integrada = sspi atributo numa cadeia de ligação).

Causa

Quando utiliza o ASP.NET, o contexto de segurança predefinido é a conta ASPNET (ou conta de serviço de rede, para uma aplicação é executada no IIS 6.0) para o Aspnet_wp.exe (ou W3wp.exe para uma aplicação é executada no IIS 6.0) e o pedido para o SQL Server. Por predefinição, a conta ASPNET (ou conta de serviço de rede, para uma aplicação é executada no IIS 6.0) não tem as permissões no SQL Server e, portanto não pode aceder a base de dados.

Resolução

Para resolver este problema, utilize um dos seguintes métodos:
  • método 1 Alterar programaticamente o contexto de segurança do ASP.NET processo de trabalho a um utilizador que tem as permissões correctas do SQL Server.
  • método 2 Altere a configuração predefinida do ASP.NET para que o processo de trabalho do ASP.NET é iniciado e executado no contexto de um utilizador que tem as permissões correctas no SQL Server.
  • método 3 Conceda as permissões correctas no SQL Server para que a conta ASPNET (ou conta de serviço de rede, para uma aplicação é executada no IIS 6.0) tem o acesso apropriado aos recursos necessários.

    Nota Este método fará com que todas as aplicações Web no servidor têm o direito correspondente no computador que está a executar o SQL Server.

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Passos para reproduzir o problema

  1. Cria uma nova aplicação Web do Microsoft Visual Basic .NET num computador com o ASP.NET e o SQL Server.
  2. Adicione o seguinte código ao evento Page_Load da página Webform1.aspx que foi criado utilizando o projecto:
    Dim con As New System.Data.SqlClient.SqlConnection("data source=localhost;integrated security=sspi;database=northwind")
     con.open()
     con.close()
  3. Criar o projecto e, em seguida, abra a página Webform1.aspx no browser.
  4. Recebe a mensagem de erro mencionada na secçã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 números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
306158  (http://support.microsoft.com/kb/306158/ ) Como implementar a representação numa aplicação do ASP.NET
307002  (http://support.microsoft.com/kb/307002/ ) ASP/ODBC/SQL Server erro 0x80040E4D "início de sessão falhou para o utilizador '(nula)'"
253500  (http://support.microsoft.com/kb/253500/ ) Mensagem de erro "Não é possível estabelecer a ligação do cliente" quando ligar a partir de ASP ao SQL Server
306586  (http://support.microsoft.com/kb/306586/ ) Resolução de problemas erro 80004005 "início de sessão falhou" no ASP
247931  (http://support.microsoft.com/kb/247931/ ) Métodos de autenticação para ligações ao SQL Server na Active Server Pages
315158  (http://support.microsoft.com/kb/315158/ ) CORRECÇÃO: O ASP.NET não funciona com a conta ASPNET predefinida num controlador de domínio
824308  (http://support.microsoft.com/kb/824308/ ) Erro: Conta IWAM não é concedida o privilégio de representação para ASP.NET 1.1 num controlador de domínio Windows 2000 com SP4
Para mais informações sobre como alterar a configuração predefinida do contexto de segurança do ASP.NET, visite o seguinte Web 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 mais informações sobre como adicionar a conta ASPNET para o SQL Server, consulte o tópico "Adicionar um utilizador ou grupo Windows" no SQL Server Books Online.

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )