SQL Server login Error 18456

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

Kortfattat kan man förklara Error 18456 såhär: När en användare loggar in mot en databas och får felmeddelandet Error 18456 är det alltid av säkerhetsskäl med Error State1. State1 säger egentligen inget om orsaken till problemet och för att gå vidare och felsöka och ta reda på vad som är orsaken till problemet, behöver man söka vidare i SQL Server errorloggen efter motsvarande felmeddelande. För att illustrera detta använder jag här SQL Server Management Studio.

Inloggning görs med ett giltigt login id utan lösenord.
För att få fram detaljerna i felmeddelandet öppnar jag Show Technical Details.

Error 18456, Severity 14, State 8 = lösenord matchar inte

(Klicka för att förstora)

ConnectToServer

FelConnectToServer

AdvancedInformation

Show Technical Details visar att det är Error 18456, Severity 14 och State1.  Nästa steg är att söka i SQL Server errorloggen med hjälp av xp_readerrorlog med parametrarna 0 för den aktuella och senaste loggen och 1 för att det är SQL Server errorlog och inte SQL Server agent log jag vill titta på.

USE master
EXEC xp_ReadErrorLog 0, 1, N'18456'; --Söker efter strängen 18456
GO
EXEC xp_ReadErrorLog 0, 1, N'ayla'; --Söker efter användarid
GO

ConnectToServerReaderrorlog


 

Här görs inloggningen med ett login id som inte är giltigt.

Error 18456, Severity 14, State 5 = Felaktigt login

ConnectToServerBert

FelConnectToServerBert

USE master
EXEC xp_ReadErrorLog 0, 1, N'18456';
GO
EXEC xp_ReadErrorLog 0, 1, N'Bert';
GO

ConnectToServerReaderrorlogBert


 

Här görs inloggningen med ett AD-konto under Authentication: SQL Server Authentication

Error 18456, Severity 14, State 6 = Försöker logga in med AD-konto på SQL Server Authentication

ConnectToServerAdkonto

FelConnectToServerAdkonto

USE master
GO
EXEC xp_ReadErrorLog 0, 1, N'18456';
GO
EXEC xp_ReadErrorLog 0, 1, N'ad-konto'; --Byt ut ad-konto mot relevant login id
GO

ConnectToServerReaderrorlogBertADkonto


 

I det här exemplet är login id disabled och inloggningen görs med fel lösenord

Error 18456, Severity 14, State 7 = Fel lösenord, error evaluating

ConnectToServerDisabled

FelConnectToServerDisabled

USE master
GO
EXEC xp_ReadErrorLog 0, 1, N'18456';
GO
EXEC xp_ReadErrorLog 0, 1, N'ayla';
GO

ConnectToServerReaderrorlogKontodisabled

 


 

Här är SQL Server instansen i PAUSED mode

Inloggning görs med ett giltigt login id och lösenord.

ConnectToServerPaused

FelConnectToServerPaused

 

USE master
GO
EXEC xp_ReadErrorLog 0, 1, N'17142';
GO
EXEC xp_ReadErrorLog 0, 1, N'ayla';
GO

ConnectToServerReaderrorlogpaused1

Error 17142, Severity 14, State 0 = SQL Server is paused

 

USE master
GO
EXEC xp_ReadErrorLog 0, 1, N'18456';
GO
EXEC xp_ReadErrorLog 0, 1, N'paused';
GO

ConnectToServerReaderrorlogpaused2

Error 18456, Severity 14, State 13 = SQL Server is paused


 

Här är en sammanställning av de login Error som jag har testat. Det finns några till, men känner man till dessa så täcker det många av de 18456 error som man kan stöta på.

 
ERROR Severity ERROR STATE ERROR DESCRIPTION
18456 14 5 Felaktigt användaid
18456 14 6 Försök att använda Windows login med SQL Authentication
18456 14 7 Error evaluating password
18456 14 8 Lösenord matchar inte
18456 14 13 SQL Server är paused
18470 14 1 Konto är disabled
17142 14 0  SQL Server är paused