Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Az SQL Server 2005 (9.x) előtt, amikor egy felhasználó jelszavaja lejárt, csak egy adminisztrátor állíthatta vissza. Az SQL Server 2005-től (9.x) kezdve az OLE DB Driver for SQL Server támogatja a jelszó lejáratának programozott kezelését az OLE DB Driveren keresztül, valamint az SQL Server bejelentkezési ablakainak módosításaival.
Note
Lehetőség szerint kérje a felhasználókat, hogy adják meg a hitelesítő adataikat a futás közben, és kerüld a titkosítási adatokat tartós formátumban tárolni. Ha meg kell őrizned a hitelesítésüket, akkor a Win32 kriptos API-val kell titkosítanod őket. További információért a jelszavak használatáról lásd: Strong Passwords.
SQL Server bejelentkezési hibakódok
Ha hitelesítési problémák miatt nem lehet kapcsolatot létrehozni, az alkalmazás számára elérhető lesz az alábbi SQL Server hibakódok egyike, hogy segítse a diagnosztikát és a helyreállítást.
| SQL Server hibakód | Hibaüzenet |
|---|---|
| 15113 | Bejelentkezés sikertelen volt a '%.*ls' felhasználó esetében Ok: Jelszó ellenőrzése sikertelen. A fiók le van zárva. |
| 18463 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A jelszó módosítása nem sikerült. A jelszó jelenleg nem használható. |
| 18464 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A jelszó módosítása nem sikerült. A jelszó nem felel meg a szabályzat követelményeinek, mert túl rövid. |
| 18465 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A jelszó módosítása nem sikerült. A jelszó nem felel meg a szabályzati követelményeknek, mert túl hosszú. |
| 18466 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A jelszó módosítása nem sikerült. A jelszó nem felel meg a szabályzat követelményeinek, mert nem elég bonyolult. |
| 18467 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A jelszó módosítása nem sikerült. A jelszó nem felel meg a jelszószűrő DLL követelményeinek. |
| 18468 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A jelszó módosítása nem sikerült. Váratlan hiba történt a jelszó érvényesítése során. |
| 18487 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A fiók jelszava lejárt. |
| 18488 | A (z)%.*ls felhasználó bejelentkezése sikertelen volt. Ok: A fiók jelszavát módosítani kell. |
OLE DB meghajtó az SQL Serverhez
Az OLE DB Driver for SQL Server támogatja a jelszó lejáratát felhasználói felületen és programozási módon.
OLE DB felhasználói felület jelszó lejárata
Az OLE DB Driver for SQL Server támogatja a jelszó lejáratát az SQL Server bejelentkezési ablakainak módosításaival. Ha DBPROP_INIT_PROMPT értéke DBPROMPT_NOPROMPT-re van állítva, az első kapcsolati próbálkozás sikertelen, ha a jelszó lejárt.
Ha DBPROP_INIT_PROMPT más értékre van beállítva, a felhasználó meglátja a SQL Server Bejelentkezés párbeszédet, függetlenül attól, hogy a jelszó lejárt-e vagy sem. A felhasználó rákattinthat az Opciók gombra, és bejelölheti a Jelszó módosítását , hogy megváltoztassa a jelszót.
Ha a felhasználó az OK-ra kattint, és a jelszó lejárt, az SQL Server arra kéri a felhasználót, hogy adjon be és erősítse meg az új jelszót a Change SQL Server Password párbeszéd segítségével.
OLE DB prompt viselkedése és zárt fiókok
A kapcsolati próbálkozások kudarcot okozhatnak, mert a fiók zárolva van. Ha ez az SQL Server bejelentkezési párbeszéd megjelenítése után történik, a szerver hibaüzenete megjelenik a felhasználónak, és a csatlakozási kísérlet megszakításra kerül. Ez előfordulhat az Change SQL Server jelszó párbeszéd megjelenítése után is, ha a felhasználó rossz értéket ír be a régi jelszóra. Ebben az esetben ugyanaz a hibaüzenet jelenik meg, és a csatlakozási kísérlet megszakításra kerül.
OLE DB kapcsolati csoportosítás, jelszó lejárata és zárolt fiókok
Egy fiókot lezárhatnak, vagy a jelszó lejárhat, amíg a kapcsolat még aktív a kapcsolati poolban. A szerver kétszer is ellenőrizi a lejárt jelszavakat és a zárolt fiókokat. Az első az, amikor először jön létre egy kapcsolat. A második alkalom a kapcsolat visszaállításakor történik, amikor a kapcsolatot a medencéből veszik el.
Ha a visszaállítási kísérlet sikertelenül működik, a kapcsolat eltávolítódik a poolból, és hiba jelenik meg.
OLE DB Programmatic Password Expire
A OLE DB Driver for SQL Server támogatja a jelszó lejáratát a SSPROP_AUTH_OLD_PASSWORD (VT_BSTR típus) tulajdonság hozzáadásával, amelyet a DBPROPSET_SQLSERVERDBINIT tulajdonsághalmazhoz adtak.
A meglévő "Jelszó" tulajdonság DBPROP_AUTH_PASSWORD-re utal, és az új jelszó tárolására szolgál.
Note
A kapcsolati karakterlánc-ban a "Old Password" tulajdonság beállítja a SSPROP_AUTH_OLD_PASSWORD-ot, ami a jelenlegi (esetleg lejárt) jelszó, amely nem elérhető szolgáltató string tulajdonságon keresztül.
A szolgáltató nem tartja fenn az ingatlan értékét. Amikor ez a tulajdonság be van állítva, a szolgáltató nem használja az első kapcsolat poolát, mert új kapcsolat keletkezik. Ha a jelszóváltás sikeres, a jelenlegi kapcsolatot nem lehet újrahasználni, mivel az továbbra is tartalmazza a régi jelszót, amely a jelszó megváltoztatása után érvénytelenné válik. Ha a bejelentkezés sikeres, a szolgáltató töröli ezt az ingatlant. A későbbi próbálkozások a régi jelszó visszaszerzésére VT_EMPTY.
Note
SSPROP_AUTH_OLD_PASSWORD soha nem szabad fenntartani, mivel csak akkor használják, ha egy jelszó lejárt.
Fontos megjegyezni, hogy amikor a "Régi jelszó" tulajdonságot beállítják, a szolgáltató feltételezi, hogy megpróbálják megváltoztatni a jelszót, hacsak nincs Windows hitelesítés is megadva, amikor mindig az elsőbbséget élvezi.
Ha Windows hitelesítést használnak, a régi jelszó megadása vagy DB_E_ERRORSOCCURRED vagy DB_S_ERRORSOCCURRED eredményt eredményez, attól függően, hogy a régi jelszót KÖTELEZETTNEK vagy OPCIONÁLISNAK adták-e meg, és a dwStatusban a DBPROPSTATUS_CONFLICTINGBADVALUE státuszérték jelenik meg. Ezt akkor észlelik, amikor az IDBInitialize::Initialize hívást kapjuk.
Ha a jelszó módosítási kísérlete váratlanul kudarcot vall, a szerver 18468-as hibakódot ad vissza. A csatlakozási kísérletből egy szokásos OLEDB hiba jelenik meg.
További információért a DBPROPSET_SQLSERVERDBINIT tulajdonsághalmazról lásd: Inicializációs és engedélyezési tulajdonságok.