Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
OLE DB-stuurprogramma downloaden
Voor SQL Server 2005 (9.x) kon alleen een beheerder het wachtwoord van een gebruiker resetten wanneer het wachtwoord van een gebruiker verliep. Vanaf SQL Server 2005 (9.x) ondersteunt OLE DB Driver for SQL Server programmatisch het afhandelen van wachtwoordverloop via OLE DB Driver, en door wijzigingen in de SQL Server Login-dialoogvensters.
Note
Vraag gebruikers indien mogelijk om hun inloggegevens tijdens runtime in te voeren en vermijd het opslaan van hun inloggegevens in een persistent formaat. Als je hun inloggegevens moet behouden, moet je ze versleutelen met de Win32 crypto API. Voor meer informatie over het gebruik van wachtwoorden, zie Sterke Wachtwoorden.
SQL Server Login Foutcodes
Wanneer een verbinding niet tot stand kan worden gebracht vanwege authenticatieproblemen, zal een van de volgende SQL Server-foutcodes beschikbaar zijn voor de applicatie om diagnose en herstel te ondersteunen.
| SQL Server Foutcode | Foutmelding |
|---|---|
| 15113 | Login mislukt voor gebruikers'%.*ls' Reden: Wachtwoordvalidatie mislukt. Het account is buitengesloten. |
| 18463 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: wachtwoordwijziging is mislukt. Het wachtwoord kan momenteel niet worden gebruikt. |
| 18464 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: wachtwoordwijziging is mislukt. Het wachtwoord voldoet niet aan beleidsvereisten omdat het te kort is. |
| 18465 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: wachtwoordwijziging is mislukt. Het wachtwoord voldoet niet aan de beleidsvereisten omdat het te lang is. |
| 18466 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: wachtwoordwijziging is mislukt. Het wachtwoord voldoet niet aan beleidsvereisten omdat het niet complex genoeg is. |
| 18467 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: wachtwoordwijziging is mislukt. Het wachtwoord voldoet niet aan de vereisten van het DLL-bestand voor wachtwoordfilters. |
| 18468 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: wachtwoordwijziging is mislukt. Er is een onverwachte fout opgetreden tijdens wachtwoordvalidatie. |
| 18487 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: Het wachtwoord van het account is verlopen. |
| 18488 | Aanmelden is mislukt voor gebruiker '%.*ls'. Reden: het wachtwoord van het account moet worden gewijzigd. |
OLE DB-stuurprogramma voor SQL Server
De OLE DB Driver for SQL Server ondersteunt wachtwoordverval via een gebruikersinterface en programmatisch.
OLE DB gebruikersinterface wachtwoord vervaldatum
De OLE DB Driver for SQL Server ondersteunt wachtwoordverloop via wijzigingen in de SQL Server Login-dialoogvensters. Als de waarde van DBPROP_INIT_PROMPT is ingesteld op DBPROMPT_NOPROMPT, mislukt de eerste verbindingspoging als het wachtwoord is verlopen.
Als DBPROP_INIT_PROMPT op een andere waarde is ingesteld, ziet de gebruiker het SQL Server Login-dialoog, ongeacht of het wachtwoord is verlopen of niet. De gebruiker kan op de knop Opties klikken en Wachtwoord wijzigen aanvinken om het wachtwoord te wijzigen.
Als de gebruiker op OK klikt en het wachtwoord is verlopen, vraagt SQL Server de gebruiker om een nieuw wachtwoord in te voeren en te bevestigen via het venster 'Wachtwoord wijzigen' van SQL Server.
OLE DB promptgedrag en vergrendelde accounts
Verbindingspogingen kunnen mislukken doordat het account is vergrendeld. Als dit gebeurt na het tonen van het SQL Server Login-dialogen, wordt het serverfoutbericht aan de gebruiker getoond en wordt de verbindingspoging afgebroken. Het kan ook optreden na de weergave van het dialoog 'Wachtwoord wijzigen van SQL Server wijzigen als de gebruiker een slechte waarde invoert voor het oude wachtwoord. In dit geval wordt hetzelfde foutmelding weergegeven en wordt de verbindingspoging afgebroken.
OLE DB Connection Pooling, Wachtwoordverloop en Vergrendelde Accounts
Een account kan worden vergrendeld of het wachtwoord kan verlopen terwijl de verbinding nog actief is in een verbindingspool. De server controleert twee keer op verlopen wachtwoorden en vergrendelde accounts. De eerste is wanneer een verbinding voor het eerst wordt gemaakt. De tweede keer is bij het resetten van de verbinding, wanneer de verbinding uit de pool wordt gehaald.
Wanneer de resetpoging mislukt, wordt de verbinding uit de pool verwijderd en wordt er een foutmelding teruggegeven.
OLE DB programmatische wachtwoordvervaldatum
De OLE DB Driver for SQL Server ondersteunt het vervallen van het wachtwoord door het toevoegen van de eigenschap SSPROP_AUTH_OLD_PASSWORD (type VT_BSTR) die aan de DBPROPSET_SQLSERVERDBINIT property set is toegevoegd.
De bestaande eigenschap "Password" verwijst naar DBPROP_AUTH_PASSWORD en wordt gebruikt om het nieuwe wachtwoord op te slaan.
Note
In de verbindingsreeks stelt de eigenschap "Oud wachtwoord" SSPROP_AUTH_OLD_PASSWORD in, wat het huidige (mogelijk verlopen) wachtwoord is dat niet beschikbaar is via een provider-string-eigenschap.
De aanbieder houdt de waarde van deze woning niet in stand. Wanneer deze eigenschap is ingesteld, gebruikt de provider de verbindingspool niet voor de eerste verbinding omdat er een nieuwe verbinding zal ontstaan. Als de wachtwoordwijziging succesvol is, kan de huidige verbinding niet opnieuw worden gebruikt omdat deze nog steeds het oude wachtwoord bevat, dat na de wachtwoordwijziging ongeldig zal zijn. Ook, als de login slaagt, verwijdert de provider deze eigendom. Latere pogingen om het oude wachtwoord terug te krijgen leveren VT_EMPTY op.
Note
SSPROP_AUTH_OLD_PASSWORD mag nooit worden gehandhaafd omdat het alleen wordt gebruikt wanneer een wachtwoord is verlopen.
Let op dat wanneer de eigenschap "Oud Wachtwoord" wordt ingesteld, de provider ervan uitgaat dat er een poging wordt gedaan om het wachtwoord te wijzigen, tenzij ook Windows Authentication is gespecificeerd, in welk geval dit altijd voorrang heeft.
Als Windows Authentication wordt gebruikt, resulteert het specificeren van het oude wachtwoord in DB_E_ERRORSOCCURRED of DB_S_ERRORSOCCURRED, afhankelijk van of het oude wachtwoord als VEREIST of OPTIONEEL is opgegeven, en de statuswaarde van DBPROPSTATUS_CONFLICTINGBADVALUE wordt teruggegeven in dwStatus. Dit wordt gedetecteerd wanneer IDBInitialize::Initialize wordt aangeroepen.
Als een poging om het wachtwoord te wijzigen onverwacht mislukt, geeft de server foutcode 18468 terug. Een standaard OLEDB-fout wordt teruggegeven bij de verbindingspoging.
Voor meer informatie over de DBPROPSET_SQLSERVERDBINIT eigenschapsset, zie Initialisatie- en Autorisatie-eigenschappen.