Delen via


MSSQLSERVER_18456

Van toepassing op:SQL Server

Bijzonderheden

Attribute Waarde
Productnaam SQL Server
Gebeurtenis-id 18456
Bron van gebeurtenis MSSQLSERVER
Onderdeel SQLEngine
Symbolische naam LOGON_FAILED
Berichttekst Inlogen mislukt voor gebruiker '%.*ls'.%.*ls

Explanation

Je krijgt deze foutmelding wanneer een verbindingspoging wordt geweigerd vanwege een authenticatiefout. Gebruikersinlogs kunnen om vele redenen falen, zoals ongeldige inloggegevens, het verlopen van het wachtwoord en het inschakelen van de verkeerde authenticatiemodus. In veel gevallen bevatten foutcodes beschrijvingen.

Gebruikersactie

De volgende voorbeelden zijn enkele van de veelvoorkomende inlogfouten. Selecteer precies de fout die je ervaart om het probleem op te lossen:

Login mislukt voor gebruiker '<gebruikersnaam>' of login mislukt voor gebruiker '<domein>\<gebruikersnaam>'

Als de domeinnaam niet is gespecificeerd, is het probleem een mislukte poging tot SQL Server-inlog. Als de domeinnaam is opgegeven, is het probleem een mislukte Windows-gebruikersaccountlogin. Voor mogelijke oorzaken en voorgestelde oplossingen, zie:

Mogelijke oorzaak Voorgestelde oplossing
Je probeert SQL Server Authentication te gebruiken, maar de SQL Server-instantie is geconfigureerd voor Windows Authentication-modus. Controleer of SQL Server is geconfigureerd om SQL Server en Windows Authentication mode te gebruiken. Je kunt de authenticatiemodus voor je SQL Server-instantie bekijken en wijzigen op de Security-pagina onder Properties voor de bijbehorende instance in SQL Server Management Studio (SSMS). Voor meer informatie, zie Wijzigen van serverauthenticatiemodus. Alternatief kun je je applicatie wijzigen zodat je Windows Authentication mode gebruikt om verbinding te maken met SQL Server.
Opmerking: Je kunt een bericht als het volgende zien in het SQL Server Error-logboek voor dit scenario:
Login failed for user '<UserName>'. Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only.
Je probeert via een groep toegang te krijgen tot SQL Server en je ziet een foutmelding. Als je niet de benodigde rechten hebt om toegang te krijgen tot de server, toont de provider de foutmelding "Login mislukt voor gebruiker 'contoso/user1'". Gebruik de functie "Access via group" die je helpt toegang te krijgen tot een server op basis van je groepslidmaatschap.
Wanneer je de xp_logininfo 'contoso/user1' opgeslagen procedure uitvoert, kan het volgende gebeuren:
- Als je een fout ziet, kan SQL Server de gebruikersnaam helemaal niet oplossen. Waarschijnlijk is er geen naam aanwezig in de Active Directory (AD) of dat er problemen kunnen zijn met de domeincontroller (DC). Probeer met een andere naam te controleren of het probleem specifiek is voor een specifiek account.
- Als je verbinding maakt met een cross-domain server, moet de groep zich in het SQL Server-domein bevinden en niet in het gebruikersdomein, zodat het lidmaatschap kan worden opgelost.
- Wanneer een databasequery geen rijen teruggeeft, betekent dit dat er geen groep is die toegang tot de server biedt. Wanneer een query één of meer rijen teruggeeft, betekent dit dat de gebruiker behoort tot een groep die toegang biedt.
De DBA kan de machtigingen dubbelchecken door de Security\Logins-map in SQL Server Management Studio (SSMS) te controleren. De Security\Logins toont een lijst van aangemaakte logins. Als het een gesloten database is, kan de DBA de Security\Logins onder de databasenaam controleren om de logins te controleren en te beheren.
Voor meer informatie, zie Configuratie Gebruikerstoegangscontrole en Toestemmingen.
SQL-inlogs zijn niet ingeschakeld Het databasebeheersysteem (DBMS) kan een variatie van het Login failed for user '<username>' bericht tonen. Om deze fout op te lossen, volgt u deze stappen:
1. Controleer of het foutlogboek van SQL Server het foutbericht "Login mislukt voor gebruiker '<gebruikersnaam>'" bevat. Reden: Een poging om in te loggen met SQL-authenticatie mislukte. De server is alleen ingesteld op Windows-authenticatie."
2. Gebruik een van de volgende methoden om de fout op te lossen:
- Gebruik een geïntegreerde login. Bijvoorbeeld, voor OLE DB Providers, voeg INTEGRATED SECURITY=SSPI toe aan de verbindingsstring, en voor ODBC-drivers, voeg TRUSTED_CONNECTION=YESje toe . De .NET-provider accepteert beide syntaxis.
Notitie: Dit kan tot andere problemen leiden als ze niet correct zijn geconfigureerd om geïntegreerde authenticatie toe te staan, en als een apart probleem onderzocht moeten worden.
- Schakel SQL-inloggegevens in op de server in:
a. Klik in SQL Server Management Studio met de rechtermuisknop op de naam van de SQL Server in Object Explorer en selecteer Eigenschappen.
b. Selecteer in het Beveiligingspaneel de SQL Server- en Windows-authenticatiemodus .
c. Kies OK.
d. Start SQL Server opnieuw om de wijziging door te voeren.
Notitie: Dit kan tot andere problemen leiden, zoals het definiëren van een SQL-login.
- Probeer een lokaal Windows-account of een domeinaccount op te geven voor de gebruikersnaam. Alleen SQL-inloggegevens zijn toegestaan. De applicatie moet geïntegreerde beveiliging gebruiken.
Login bestaat niet op de SQL Server-instantie waarmee je probeert te verbinden. Controleer of de SQL Server-login bestaat en dat je het correct hebt gespeld. Als de login niet bestaat, maak hem dan aan. Als het aanwezig is maar verkeerd gespeld, corrigeer dat dan in de applicatie-verbindingsstring. De SQL Server Errorlog zal een van de volgende berichten bevatten:
- Login failed for user 'username'. Reason: Could not find a login matching the name provided.
- Login failed for user 'Domain\username'. Reason: Could not find a login matching the name provided.Dit kan een veelvoorkomend probleem zijn als je een applicatie die een DEV- of QA-server gebruikt in productie zet en je de verbindingsstring niet bijwerkt. Om dit probleem op te lossen, controleer je of je verbinding maakt met de juiste server. Zo niet, corrigeer dan de verbindingsstring. Als dat zo is, geef dan de inlogtoegang aan je SQL Server. Of als het een Windows-login is, geef dan direct toegang of voeg het toe aan een lokale of domeingroep die verbinding mag maken met de databaseserver. Voor meer informatie, zie Inloggegevens aanmaken.
Je gebruikt SQL Server-authenticatie, maar het wachtwoord dat je hebt opgegeven voor SQL Server-login is onjuist. Controleer het SQL-foutlogboek op berichten als "Reden: Wachtwoord kwam niet overeen met dat voor de opgegeven login" om de oorzaak te bevestigen. Om het probleem op te lossen, gebruik je het juiste wachtwoord in je applicatie of gebruik je een ander account als je het wachtwoord niet meer weet. Of werk samen met je SQL Server-beheerder om het wachtwoord van het account te resetten.
Als de applicatie SQL Server Integration Services (SSIS) is, kunnen er meerdere niveaus van een configuratiebestand voor de taak zijn, wat de Connection Manager-instellingen voor het pakket kan overschrijven.
Als de applicatie door jouw bedrijf is geschreven en de verbindingsstring programmatisch is gegenereerd, schakel dan het ontwikkelingsteam in om het probleem op te lossen. Als tijdelijke oplossing codeer je de verbindingsstring hardcode en test je. Gebruik een UDL-bestand of een script om te bewijzen dat een verbinding mogelijk is met een hardgecodeerde verbindingsstring.
De verbindingsstring heeft onjuiste syntaxis, servernaam of gebruikersgegevens. Om dit op te lossen, volg deze stappen:
  1. Controleer het format van de verbindingsstring. Een verbindingsstringformaat moet de vereiste parameters bevatten, zoals servernaam, databasenaam, gebruikersnaam en wachtwoord.
  2. Controleer de servernaam in de verbindingsstring.
  3. Als je een benoemde instantie gebruikt, voeg dan de instantienaam op.
  4. Als de beoogde server onjuist is, update dan de verbindingsstring zodat deze naar de juiste server verwijst.
  5. Als de verbindingsstring correct is, geef dan de inlogtoegang tot de database. Om dit te doen, maak je een gebruiker aan in de database en koppel je vervolgens aan die login.
  6. Als je een Windows-login gebruikt, voeg de login dan toe aan een lokale groep of domeingroep die mag verbinden met de databaseserver.
Geen inloggen Controleer of SQL Server de volgende berichten toont:
Logon Error: 18456, Severity: 14, State: 11.
Logon Login failed for user 'CONTOSO\JohnDoe'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: ]
Sommige fouten behoren tot het Anonymous Logon-account. Dit heeft te maken met de Kerberos-kwestie. Er was een slechte handmatige invoer in het HOSTS-bestand, dat wil zeggen, de verkeerde servernaam was opgegeven.
De overige kwesties kunnen in de volgende categorieën vallen:
  • Inloggegevens werden geweigerd (of niet toegekend) voor een eindgebruiker.
  • Het account had toegang via de Beheerdersgroep.
  • Een groep waartoe de gebruiker behoorde, had DENY-rechten in SQL Server.
Je probeert verbinding te maken met Windows-authenticatie maar bent ingelogd op een verkeerd domein. Controleer of je correct bent ingelogd op het juiste domein. Het foutbericht toont meestal de domeinnaam.
Controleer databaserechten De database verschijnt niet offline in SQL Server Management Studio. Andere gebruikers, bijvoorbeeld de DBA, kunnen ermee verbinden.
Het betreffende gebruikersaccount moet expliciete toegang tot de database krijgen of worden toegevoegd aan een SQL Server-rol of een lokale Windows-groep of domeingroep die toegang tot de database heeft. Voor meer informatie, zie USER AANMAKEN,ROL WIJZIGEN en SERVER ROL WIJZIGEN
Je draait je applicatie (bijvoorbeeld SSMS) niet als beheerder. Als je probeert verbinding te maken met je beheerdersgegevens, start je je applicatie met de optie 'Run as Administrator '. Voeg bij verbonden je Windows-gebruiker toe als individuele login.
Inloggen wordt verwijderd na een migratie naar een gebruiker met een gesloten database. Als de database engine contained-databases ondersteunt, bevestig dan dat de login niet is verwijderd na migratie naar een gebruikte database. Voor meer informatie, zie Authenticatie van Gesloten Database: Inleiding.
De standaarddatabase van Login is offline of anderszins niet beschikbaar. Overleg met je SQL Server-beheerder en los problemen met betrekking tot de beschikbaarheid van de database op. Als de login rechten heeft voor andere databases op de server en je geen toegang hebt tot de momenteel geconfigureerde standaarddatabase in je applicatie, gebruik dan een van de volgende opties:
- Vraag de beheerder om de standaarddatabase voor de login te wijzigen met behulp van de ALTER LOGIN-instructie of SSMS.
- Specificeer expliciet een andere database in je applicatie-verbindingsstring. Of als je SSMS gebruikt, schakel dan over naar het tabblad Connection Properties om een database aan te geven die momenteel beschikbaar is.Applicaties zoals SSMS kunnen een foutmelding tonen zoals de volgende:
Cannot open user default database. Login failed.
Login failed for user <user name>. (Microsoft SQL Server, Error: 4064)
SQL Server Errorlog zal een foutmelding hebben zoals het volgende:
Login failed for user '<user name>'. Reason: Failed to open the database '<dbname>' specified in the login properties [CLIENT: <ip address>]
Voor meer informatie, zie MSSQLSERVER_4064.
De database die expliciet is gespecificeerd in de verbindingsreeks of in SSMS is verkeerd gespeld, offline of anderszins niet beschikbaar. - Fix de databasenaam in de verbindingsstring. Let op de naamvalgevoeligheid als je een hoofdlettergevoelige rangatie op de server gebruikt.
- Als de databasenaam correct is, overleg dan met je SQL Server-beheerder en los problemen met betrekking tot de beschikbaarheid van de database op. Controleer of de database offline is, niet hersteld, enzovoort.
- Als het inlogen is toegewezen aan gebruikers met rechten naar andere databases op de server en je hoeft niet de momenteel geconfigureerde database in je applicatie te benaderen, specificeer dan een andere database in je verbindingsstring. Of als je verbinding maakt met SSMS, gebruik dan het tabblad Connection Properties om een database aan te geven die momenteel beschikbaar is.
SQL Server Errorlog zal een foutmelding hebben zoals het volgende:
Login failed for user <UserName>. Reason: Failed to open the explicitly specified database 'dbname'. [CLIENT: <ip address>]
Opmerking: Als de standaarddatabase van de login beschikbaar is, maakt SQL Server het mogelijk dat de verbinding slaagt. Voor meer informatie, zie MSSQLSERVER_4064.
De gebruiker heeft geen rechten op de gevraagde database. - Probeer verbinding te maken als een andere gebruiker met systeembeheerdersrechten om te zien of er verbinding kan worden opgebouwd.
- Verleen de inlogtoegang tot de database door de overeenkomstige gebruiker aan te maken (bijvoorbeeld, CREATE USER [<UserName>] FOR LOGIN [UserName])

Bekijk ook de uitgebreide lijst met foutcodes bij Troubleshooting Error 18456.

Voor meer hulp bij probleemoplossing, zie Troubleshooting SQL Client / Server Connectivity Issues.

Login mislukt voor gebruiker NT AUTHORITY\ANONYMOUS LOGON

Er zijn minstens vier scenario's voor dit nummer. In de volgende tabel wordt elke mogelijke oorzaak onderzocht en de juiste resolutie gebruikt: Zie de notitie onder de tabel voor een uitleg van de term dubbele hop.

Mogelijke oorzaken Voorgestelde resoluties
Je probeert NT LAN Manager (NTLM) inloggegevens van de ene dienst naar de andere service op dezelfde computer door te geven (bijvoorbeeld van IIS naar SQL Server), maar er ontstaat een storing tijdens het proces. Voeg de registervermeldingen DisableLoopbackCheck of BackConnectionHostNames toe.
Er zijn double-hop (constraints delegatie) scenario's over meerdere computers. De fout kan optreden als de Kerberos-verbinding uitvalt door problemen met Service Principal Names (SPN). Voer SQLCheck uit op elke SQL-server en de webserver. Gebruik de probleemoplossingsgidsen: 0600 Credential Delegation Issue en 0650 SQL Server Linked Server Delegation Issues.
Als er geen double-hop (constraintsdelegatie) betrokken is, bestaan er waarschijnlijk dubbele SPN's, en draait de client als een LocalSystem- of een ander machineaccount dat NTLM-inloggegevens ontvangt in plaats van Kerberos-credentials. Gebruik SQLCheck of Setspn.exe om eventuele SPN-gerelateerde problemen te diagnosticeren en op te lossen. Bekijk ook het Overzicht van de Kerberos Configuration Manager voor SQL Server.
Het Windows Local Security-beleid kan zo zijn ingesteld dat het gebruik van het machineaccount voor externe authenticatieverzoeken wordt voorkomen. Ga naar Lokaal Beveiligingsbeleid>Lokale Beleidsregels>Beveiligingsopties>Netbeveiliging: Laat het Lokale Systeem computeridentiteit gebruiken voor NTLM, selecteer de optie Ingeschakeld als de instelling is uitgeschakeld, en selecteer vervolgens OK.
Opmerking: Zoals beschreven op het tabblad Uitleggen , is dit beleid standaard ingeschakeld in Windows 7 en latere versies.
Incidentele optredens van dit probleem bij het gebruik van beperkte delegatie kan wijzen op de aanwezigheid van een verlopen ticket dat niet door de middenklasse kan worden verlengd. Dit is een verwacht gedrag bij zowel gekoppelde serverscenario's als elke applicatie die een logonsessie langer dan 10 uur vasthoudt. Verander de delegatie-instellingen op je middenniveau server van Vertrouw deze computer alleen voor delegering aan bepaalde diensten - Gebruik Kerberos alleen om deze computer te vertrouwen voor delegering aan specifieke diensten - Gebruik elk protocol. Voor meer informatie, zie Intermittent ANONYMOUS LOGON van SQL Server gekoppelde server double hop.
NTLM Peer Login Deze fout heeft betrekking op het NTLM-authenticatieprotocol dat wordt gebruikt door Microsoft Windows OS. Wanneer je communiceert tussen computers die zich in werkstations bevinden of in domeinen die elkaar niet vertrouwen, kun je identieke accounts op beide machines instellen en NTLM peer-authenticatie gebruiken. NTLM Peer Login. Inloggegevens werken alleen als zowel het gebruikersaccount als het wachtwoord op beide machines overeenkomen.
Loopback-beveiliging Loopback-beveiliging is ontworpen om te voorkomen dat applicaties andere diensten op dezelfde machine aanroepen. Je kunt ofwel de DisableLoopbackCheckBackConnectionHostNames (voorkeurs) registersleutels instellen om dit toe te staan. Voor meer informatie, zie Foutmelding wanneer je probeert lokaal toegang te krijgen tot een server met behulp van zijn FQDN of zijn CNAME-alias nadat je Windows Server 2003 Service Pack 1 hebt geïnstalleerd: Toegang geweigerd of Geen netwerkprovider heeft het opgegeven netwerkpad geaccepteerd.
Always-On Luisteraar-loopbackbescherming Wanneer je verbinding maakt met de Always-On Listener vanaf de primaire node, is de verbinding NTLM. Dit activeert de Loopback Check en resulteert in een "Login mislukt"-foutmelding die aangeeft dat de gebruiker afkomstig is van een niet-vertrouwd domein. Om deze fout op te lossen, typ je de naam Listener NETBIOS en de volledig gekwalificeerde naam in de BackConnectionHostNames registersleutel op alle machines in de Availability Group. Voor meer informatie, zie Foutmelding wanneer je probeert lokaal toegang te krijgen tot een server met behulp van zijn FQDN of zijn CNAME-alias nadat je Windows Server 2003 Service Pack 1 hebt geïnstalleerd: Toegang geweigerd of Geen netwerkprovider heeft het opgegeven netwerkpad geaccepteerd.
LANMAN-compatibiliteitsniveau Dit gebeurt meestal tussen oudere computers (voor Windows 2008) en nieuwere computers.
Stel het LANMAN-compatibiliteitsniveau op 5 op alle computers. Dit staat NTLM v1 ook niet toe. Je kunt ook overstappen op Kerberos om dit probleem te voorkomen.
Gevoelig account Sommige accounts kunnen als Gevoelig worden gemarkeerd in Active Directory. Deze accounts kunnen niet worden gedelegeerd aan een andere dienst in een double-hop scenario.
Geen beperkt doelwit Als constrained delegatie is ingeschakeld voor een bepaald serviceaccount, zal Kerberos falen als het SPN van de doelserver niet op de lijst van doelen van constrained delegation staat.
Per-Service-SID Deze functie beperkt lokale verbindingen tot het gebruik van NTLM en niet Kerberos als authenticatiemethode. De dienst kan één keer naar een andere server gaan met NTLM-inloggegevens, maar kan niet verder worden gedelegeerd zonder gebruik van beperkte delegatie.
NTLM en beperkte delegatie Als het doelwit een bestandsdeling is, moet het delegatietype van het mid-tier serviceaccount Constrained-Any zijn en niet Constrained-Kerberos.

Opmerking

Een dubbele hop houdt doorgaans in dat gebruikersgegevens worden gedelegeerd over meerdere externe computers. Stel bijvoorbeeld dat je een SQL Server-instantie genaamd SQL1 hebt waarbij je een gekoppelde server hebt gemaakt voor een externe SQL Server genaamd SQL2. In de beveiligingsconfiguratie van gekoppelde servers selecteerde je de optie Be made using the current security context van de login. Bij gebruik van deze configuratie, als je een gekoppelde serverquery uitvoert op SQL1 vanaf een externe clientcomputer genaamd Client1, moeten de Windows-inloggegevens eerst van Client1 naar SQL1 en daarna van SQL1 naar SQL2 springen (vandaar dat een double-hop heet). Voor meer informatie, zie Overzicht Understanding Kerberos Double Hop en Kerberos Constrained Delegation Overzicht

Login mislukt voor gebruiker (leeg)

Deze fout treedt op wanneer een gebruiker tevergeefs probeert in te loggen. Deze fout kan optreden als je computer niet verbonden is met het netwerk. Je kunt bijvoorbeeld een foutmelding ontvangen die lijkt op het volgende:

Source: NETLOGON
Date: 8/12/2012 8:22:16 PM
Event ID: 5719
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: <computer name>
Description: This computer was not able to set up a secure session with a domain controller in domain due to the following: The remote procedure call was cancelled.
This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator.

Een lege string betekent dat SQL Server heeft geprobeerd de inloggegevens over te dragen aan de Local Security Authority Subsystem Service (LSASS), maar dat niet lukte vanwege een probleem. Of LSASS was niet beschikbaar, of de domeincontroller was niet bereikbaar.

Je kunt ook de volgende bijbehorende SSPI-foutcodes zien:

SSPI-handshake faalde met foutcode 0x80090311 bij het tot stand brengen van een verbinding met geïntegreerde beveiliging; De verbinding is gesloten.

SSPI-handshake faalde met foutcode 0x80090304 bij het tot stand brengen van een verbinding met geïntegreerde beveiliging; De verbinding is gesloten.

Deze foutcodes vertalen zich als volgt:

Fout -2146893039 (0x80090311): Er kon geen autoriteit worden ingeschakeld voor authenticatie. Fout -2146893052 (0x80090304): De Lokale Veiligheidsautoriteit is niet bereikbaar.

Om deze fouten op te lossen, kun je de betreffende DC offline halen of NLTEST.EXE gebruiken om van DC te wisselen. - Om de DC te bevragen, voer het NLTEST /SC_QUERY:CONTOSO commando uit. - Om de DC te veranderen, voer het NLTEST /SC_RESET:CONTOSO\DC03 commando uit.

Als u verdere hulp nodig heeft, neem dan contact op met het Microsoft Active Directory-team.

Controleer de gebeurtenislogboeken van de client en de server op netwerk- of Active Directory-gerelateerde berichten die rond het moment van de storing zijn gelogd. Als je er een vindt, werk dan samen met je domeinbeheerder om de problemen op te lossen.

Login mislukt voor gebruiker '(null)'

Een aanwijzing van "null" kan betekenen dat LSASS het beveiligingstoken niet kan ontsleutelen door gebruik te maken van de inloggegevens van de SQL Server-service. De belangrijkste reden voor deze aandoening is dat het SPN aan de verkeerde rekening is gekoppeld.

Volg deze stappen om het probleem op te lossen:

  1. Gebruik de SQLCheck of Setspn.exe om SPN-gerelateerde problemen te diagnosticeren en op te lossen.

  2. Gebruik SQLCheck om te controleren of het SQL Service-account vertrouwd is voor delegering. Als de output aangeeft dat het account niet wordt vertrouwd voor delegering, werk dan samen met je Active Directory-beheerder om delegatie voor het account in te schakelen.

Opmerking

De SETSPN -X en -Q zijn nuttige commando's om te controleren op dubbele of verkeerd geplaatste SPN's.

  1. Diagnoseer en los problemen op met het resolutie van Domain Name System (DNS). Voorbeeld:

    • Ping IP-adres door PowerShell-scripts te gebruiken:

      • ping -a <your_target_machine> (gebruik -4 specifiek voor IPv4 en -6 IPv6)
      • ping -a <your_remote_IPAddress>
    • Gebruik NSLookup om meerdere keren de naam en IP-adres van je lokale en externe computer in te voeren.

  2. Let op eventuele afwijkingen en mismatches in de teruggegeven resultaten. De nauwkeurigheid van de DNS-configuratie op het netwerk is belangrijk voor een succesvolle SQL Server-verbinding. Een verkeerde DNS-invoer kan later talrijke verbindingsproblemen veroorzaken.

  3. Zorg ervoor dat firewalls of andere netwerkapparaten een client niet blokkeren om verbinding te maken met de domeincontroller. SPN's worden opgeslagen in Active Directory. Als de clients niet met de directory kunnen communiceren, kan de verbinding niet slagen.

Aanvullende foutinformatie

Om de veiligheid te vergroten, verbergt het foutbericht dat aan de client wordt teruggestuurd opzettelijk de aard van de authenticatiefout. In het SQL Server-foutlogboek bevat een overeenkomstige fout echter een foutstatus die overeenkomt met een authenticatiefoutconditie. Vergelijk de foutstatus met de volgende lijst om de reden van het mislukken van het inlogen te achterhalen.

Staat Description
1 Foutinformatie is niet beschikbaar. Deze staat betekent meestal dat je geen toestemming hebt om de foutinformatie te ontvangen. Neem contact op met je SQL Server-beheerder voor meer informatie.
2 Gebruikers-ID is niet geldig.
5 Gebruikers-ID is niet geldig.
6 Er werd geprobeerd een Windows-loginnaam te gebruiken met SQL Server-authenticatie.
7 Inloggen is uitgeschakeld en het wachtwoord is onjuist.
8 Het wachtwoord is onjuist.
9 Het wachtwoord is niet geldig.
11 Inloggen is geldig, maar servertoegang is mislukt. Een mogelijke oorzaak van deze fout is wanneer de Windows-gebruiker toegang heeft tot SQL Server als lid van de lokale beheerdersgroep, maar Windows geen beheerdersgegevens verstrekt. Om verbinding te maken, start je het verbindingsprogramma met de optie 'Run as administrator ' en voeg je vervolgens de Windows-gebruiker toe aan SQL Server als een specifieke login.
12 Login is geldig inloggen, maar servertoegang mislukte.
18 Wachtwoord moet worden gewijzigd.
38, 46 Ik kon de database die door de gebruiker is aangevraagd niet vinden.
58 Wanneer SQL Server alleen Windows-authenticatie gebruikt, en een client probeert in te loggen met SQL-authenticatie. Een andere oorzaak is wanneer SIDs niet overeenkomen.
62 Treedt op wanneer een Windows-authenticatieaccount probeert toegang te krijgen tot een gesloten database, en de gesloten database bestaat, maar de SID's komen niet overeen.
102 - 111 Azure AD failure.
122 - 124 Mislukking door lege gebruikersnaam of wachtwoord.
126 De database die door de gebruiker is aangevraagd bestaat niet.
132 - 133 Azure AD failure.

Er bestaan ook andere fouttoestanden en duiden op een onverwachte interne verwerkingsfout.

Zeldzamer mogelijke oorzaak

De foutreden: Een poging om in te loggen met SQL-authenticatie mislukte. De server is alleen ingesteld op Windows-authenticatie. kan in de volgende situaties worden teruggegeven.

  • Wanneer de server is geconfigureerd voor mixed mode authenticatie, en een ODBC-verbinding het TCP-protocol gebruikt, en de verbinding niet expliciet specificeert dat de verbinding een vertrouwde verbinding moet gebruiken.

  • Wanneer SQL Server is geconfigureerd voor mixed mode authenticatie, en een ODBC-verbinding gebruikt named pipes, worden de credentials die de client gebruikte om de named pipe te openen automatisch gebruikt om zich voor de gebruiker voor te doen, en specificeert de connection string niet expliciet het gebruik van een vertrouwde authenticatie.

Om dit probleem op te lossen, voeg je de verbindingsstring op TRUSTED_CONNECTION = TRUE .

Voorbeelden

In dit voorbeeld is de authenticatiefoutstatus 8. Dit geeft aan dat het wachtwoord onjuist is.

Datum Bron Message
2007-12-05 20:12:56.34 Logon Fout: 18456, ernst: 14, staat: 8.
2007-12-05 20:12:56.34 Logon Login mislukt voor gebruiker '<user_name>'. [CLIENT: <ip-adres>]

Opmerking

Wanneer SQL Server wordt geïnstalleerd met Windows Authenticatiemodus en later wordt gewijzigd naar SQL Server en Windows Authenticatiemodus, wordt de SA-login aanvankelijk uitgeschakeld. Dit veroorzaakt de foutmelding status 7: "Login mislukt voor gebruiker 'sa'." Om de SA-login in te schakelen, zie Server Authenticatiemodus wijzigen.

Zie ook