Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Före SQL Server 2005 (9.x) kunde endast en administratör återställa när en användares lösenord gick ut. Från och med SQL Server 2005 (9.x) stödjer OLE DB Driver for SQL Server hantering av lösenordsutgång programmatiskt via OLE DB Driver och genom ändringar i SQL Server Login-dialogrutorna.
Note
När det är möjligt, be användare att ange sina inloggningsuppgifter vid körning och undvik att lagra dem i ett bestående format. Om du måste behålla deras inloggningsuppgifter bör du kryptera dem med Win32-krypto-API:et. För mer information om användning av lösenord, se Starka lösenord.
SQL Server-inloggningskoder
När en anslutning inte kan upprättas på grund av autentiseringsproblem kommer en av följande SQL Server-felkoder att vara tillgänglig för applikationen för att underlätta diagnos och återställning.
| SQL Server felkod | Felmeddelande |
|---|---|
| 15113 | Inloggning misslyckades för användarens%.*ls' Anledning: Lösenordsvalidering misslyckades. Kontaket är låst. |
| 18463 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordsändringen misslyckades. Lösenordet kan inte användas just nu. |
| 18464 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordsändringen misslyckades. Lösenordet uppfyller inte principkraven eftersom det är för kort. |
| 18465 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordsändringen misslyckades. Lösenordet uppfyller inte policykraven eftersom det är för långt. |
| 18466 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordsändringen misslyckades. Lösenordet uppfyller inte principkraven eftersom det inte är tillräckligt komplext. |
| 18467 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordsändringen misslyckades. Lösenordet uppfyller inte kraven för lösenordsfiltrets DLL. |
| 18468 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordsändringen misslyckades. Ett oväntat fel uppstod under lösenordsverifieringen. |
| 18487 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordet för kontot har upphört att gälla. |
| 18488 | Inloggningen misslyckades för användaren "%.*ls". Orsak: Lösenordet för kontot måste ändras. |
OLE DB-drivrutin för SQL Server
OLE DB Driver for SQL Server stöder lösenordsutgång via ett användargränssnitt och programmatiskt.
OLE DB-användargränssnittets lösenordsutgång
OLE DB Driver for SQL Server stöder lösenordsutgång genom ändringar i SQL Server Login-dialogrutorna. Om värdet DBPROP_INIT_PROMPT sätts till DBPROMPT_NOPROMPT misslyckas det initiala anslutningsförsöket om lösenordet har gått ut.
Om DBPROP_INIT_PROMPT har satts till något annat värde ser användaren dialogen SQL Server Login, oavsett om lösenordet har gått ut eller inte. Användaren kan klicka på Alternativ-knappen och markera Byt lösenord för att ändra lösenordet.
Om användaren klickar OK och lösenordet har gått ut, ber SQL Server användaren att ange och bekräfta ett nytt lösenord via dialogen Byt SQL Server lösenord.
OLE DB-promptbeteende och låsta konton
Anslutningsförsök kan misslyckas på grund av att kontot är låst. Om detta sker efter att SQL Server-inloggningsdialogen visas visas serverfelmeddelandet för användaren och anslutningsförsöket avbryts. Det kan också inträffa efter att dialogen Byt SQL Server lösenord visas om användaren anger ett felaktigt värde för det gamla lösenordet. I detta fall visas samma felmeddelande och anslutningsförsöket avbryts.
OLE DB-anslutningspoolning, lösenordsutgång och låsta konton
Ett konto kan vara låst eller så kan lösenordet gå ut medan anslutningen fortfarande är aktiv i en anslutningspool. Servern kontrollerar för utgångna lösenord och låsta konton vid två tillfällen. Den första är när en koppling först skapas. Det andra tillfället är vid anslutningsåterställning, när anslutningen tas från poolen.
När återställningsförsöket misslyckas tas anslutningen bort från poolen och ett felmeddelande returneras.
OLE DB programmatiskt lösenordsutgång
OLE DB Driver for SQL Server stöder lösenordets utgång genom att lägga till egenskapen SSPROP_AUTH_OLD_PASSWORD (typ VT_BSTR) som lagts till i DBPROPSET_SQLSERVERDBINIT-egenskapsuppsättningen.
Den befintliga egenskapen "Password" syftar på DBPROP_AUTH_PASSWORD och används för att lagra det nya lösenordet.
Note
I reťazec pripojenia sätter egenskapen "Gammalt lösenord" SSPROP_AUTH_OLD_PASSWORD, vilket är det aktuella (möjligen utgångna) lösenordet som inte finns tillgängligt via en leverantörssträngsegenskap.
Leverantören behåller inte värdet på denna fastighet. När denna egenskap sätts använder leverantören inte anslutningspoolen för den första anslutningen eftersom en ny anslutning kommer att uppstå. Om lösenordsbytet lyckas kan den nuvarande anslutningen inte återanvändas eftersom den fortfarande innehåller det gamla lösenordet, vilket blir ogiltigt efter lösenordsbytet. Om inloggningen lyckas rensar leverantören också denna egendom. Efterföljande försök att återfå det gamla lösenordet ger VT_EMPTY.
Note
SSPROP_AUTH_OLD_PASSWORD bör aldrig upprätthållas eftersom det bara används när ett lösenord har gått ut.
Observera att när egenskapen "Gammalt lösenord" sätts antar leverantören att ett försök att ändra lösenordet görs, om inte Windows-autentisering också är specificerad, i vilket fall den alltid har företräde.
Om Windows Authentication används resulterar angivelsen av det gamla lösenordet i antingen DB_E_ERRORSOCCURRED eller DB_S_ERRORSOCCURRED beroende på om det gamla lösenordet angavs som REQUIRED eller OPTIONAL respektive, och statusvärdet för DBPROPSTATUS_CONFLICTINGBADVALUE returneras i dwStatus. Detta upptäcks när IDBInitialize::Initialize anropas.
Om ett försök att ändra lösenordet oväntat misslyckas returnerar servern felkod 18468. Ett standard OLEDB-fel returneras från anslutningsförsöket.
För mer information om DBPROPSET_SQLSERVERDBINIT egenskapsuppsättning, se Initialisering och auktorisationsegenskaper.