Udostępnij za pośrednictwem


Programowe zmienianie hasła

Przed SQL Server 2005, gdy hasło użytkownika wygasło, tylko administrator może je zresetować. Zaczyna się od SQL Server 2005, SQL Server Macierzysty obsługuje klient obsługi przedawnieniu hasła programowo za pomocą obu SQL Server Macierzystego dostawca klient OLE DB oraz SQL Server Macierzysty sterownik ODBC klient i za pośrednictwem zmiany konto logowania do programu SQL Server oknach dialogowych.

Uwaga

Kiedy uruchamiany jest to możliwe, monitu użytkowników o wprowadzenie poświadczenia w czasie i Unikaj przechowywania poświadczenia w postaci trwałe.Jeśli muszą przetrwać swoje poświadczenia, należy je zaszyfrować przy użyciu Win32 crypto API.Aby uzyskać więcej informacji na temat używania haseł Zobacz Strong Passwords.

Kody błędów konto logowania do programu SQL Server

Jeśli nie można nawiązać połączenia z powodu problemów uwierzytelnianie, jedną z następujących kodów błędów programu SQL Server będzie miał dostęp do aplikacji do pomocy diagnostyki i odzyskiwanie.

Kod błędu SQL Server

Komunikat o błędzie

15113

Logowanie nie powiodło się dla użytkownika "%. * ls przyczyny: Sprawdzanie poprawności hasła nie powiodło się. Konto jest zablokowane.

18463

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Nie można zmienić hasła. Hasło nie może być używany w tej chwili.

18464

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Nie można zmienić hasła. Hasło nie spełnia wymagań zasad, ponieważ jest za krótki.

18465

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Nie można zmienić hasła. Hasło nie spełnia wymagań zasad, ponieważ jest za długa.

18466

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Nie można zmienić hasła. Hasło nie spełnia wymagań zasad, ponieważ nie jest wystarczająco skomplikowane.

18467

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Nie można zmienić hasła. Hasło nie spełnia wymagań biblioteki DLL filtru hasła.

18468

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Nie można zmienić hasła. Wystąpił nieoczekiwany błąd podczas sprawdzania poprawności hasła.

18487

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Hasło konta wygasło.

18488

Logowanie nie powiodło się dla użytkownika "%. * ls'.Przyczyna: Należy zmienić hasło konta.

Aby uzyskać więcej informacji na temat obsługi SQL Server błędy, zobacz Obsługa błędów i komunikatów w aplikacji.

Dostawca OLE DB programu SQL Server Native Client

The SQL Server Native klient OLE DB dostawca supports password expiration though a user interfejs and programmatically.

Wygaśnięcie hasła interfejs użytkownika DB OLE

The SQL Server Native klient OLE DB dostawca supports password expiration through changes made to the konto logowania do programu SQL Server dialog boxes.Jeśli wartość DBPROP_INIT_PROMPT zestaw do DBPROMPT_NOPROMPT, próba połączenia początkowego powiedzie się, jeśli hasło wygasło.

Jeśli DBPROP_INIT_PROMPT została ustawiona na jakąkolwiek inną wartość, użytkownik widzi Logowanie do serwera SQL oknach, niezależnie od tego, niezależnie od tego, czy hasło wygasło.Użytkownik może kliknąć przycisk na Opcje przycisk i sprawdź, czy Zmienianie hasła , aby zmienić hasło.

Jeśli użytkownik kliknie przycisk OK, a hasło wygasło, SQL Server monituje użytkownika o wprowadź i Potwierdź nowy za pomocą hasła Zmień hasło SQL Server okna dialogowego.

Zachowanie wiersza DB OLE i zablokowanych kont

Próba połączenia może zakończyć się niepowodzeniem ze względu na to konto jest zablokowane.Jeśli tak się stanie po wyświetlania konto logowania do programu SQL Server okna dialogowego, komunikat o błędzie serwera są wyświetlane dla użytkownika, a próba połączenia została przerwana.Może również wystąpić po wyświetlania Zmień hasło SQL Server oknach, jeśli użytkownik wprowadzi Zła wartość dla starego hasła.W tym przypadek jest wyświetlany ten sam komunikat o błędzie, a próba połączenia została przerwana.

Pula połączeń baz danych OLE, wygaśnięcie hasła i zablokowanych kont

Może być ono zablokowane konta lub jego hasło może wygaśnie w czasie, gdy połączenie jest wciąż aktywne w puli połączeń.Serwer sprawdza wygasłego hasła i zablokowane konta dwukrotnie.Pierwsza jest podczas tworzenia połączenia.Drugi razem, gdy jest na zresetowanie połączenia, gdy połączenie jest pobierana z puli.

Podczas próby resetowania zakończy się niepowodzeniem, połączenie zostanie usunięte z puli i zwracany jest błąd.

OLE DB programowanej wygaśnięcia hasła

The SQL Server Native klient OLE DB dostawca supports password expiration through the addition of the SSPROP_AUTH_OLD_PASSWORD (type VT_BSTR) właściwość that has been added to the DBPROPSET_SQLSERVERDBINIT właściwość zestaw.

Istniejące właściwość "" hasło"odwołuje się do DBPROP_AUTH_PASSWORD i jest używany do przechowywania nowe hasło.

Uwaga

W ciąg połączenia dla właściwość "Stare hasło" Ustawia SSPROP_AUTH_OLD_PASSWORD, czyli bieżące hasło (prawdopodobnie wygasłe), który nie jest dostępny za pośrednictwem właściwość ciąg dostawca.

Dostawca nie zachowywane wartość tej właściwość.Gdy ta właściwość jest zestaw, dostawca nie używa puli połączeń dla pierwszego połączenia, ponieważ wystąpi nowego połączenia.Jeśli zmiana hasła zakończy się pomyślnie, bieżące połączenie nie może zostać użyty ponownie, ponieważ nadal zawiera stare hasło jest nieprawidłowe po zmianie hasła.Ponadto jeśli logowania się powiedzie, dostawca czyści tej właściwość.Kolejne próby pobrania stare hasło zwracają VT_EMPTY.

Uwaga

Nigdy nie powinny być utrwalone SSPROP_AUTH_OLD_PASSWORD, ponieważ jest on używany tylko wtedy, gdy hasło wygaśnie.

Należy zauważyć, że za każdym razem, gdy właściwość "Stare hasło" zestaw, dostawca zakłada, że podjęto próbę zmiany hasła jest dokonywana, jeśli określony jest również uwierzytelnianie systemu Windows, w których przypadek go zawsze ma pierwszeństwo.

Jeśli używane jest uwierzytelnianie systemu Windows, określenie wyniki stare hasło w DB_E_ERRORSOCCURRED lub DB_S_ERRORSOCCURRED w zależności od tego, czy stare hasło zostało określone jako REQUIRED lub OPTIONAL odpowiednio i zwracana jest wartość stanu DBPROPSTATUS_CONFLICTINGBADVALUE w dwStatus. To jest wykrywane po IDBInitialize::Initialize nosi nazwę.

Jeśli próba zmiany hasła nie powiedzie się w nieoczekiwanym, serwer zwraca kod błędu 18468.Próba połączenia zostanie zwrócony standardowy błąd OLEDB.

Aby uzyskać więcej informacji na temat DBPROPSET_SQLSERVERDBINIT zestaw właściwość Zobacz Inicjowanie i właściwości autoryzacja.

Program SQL Server macierzysty sterownik ODBC klient

The SQL Server Native klient OLE DB dostawca supports password expiration though a user interfejs and programmatically.

Wygaśnięcie hasła interfejs użytkownika ODBC

The SQL Server Native klient ODBC driver supports password expiration through changes made to the konto logowania do programu SQL Server dialog boxes.

Jeśli SQLDriverConnect nosi nazwę i wartość DriverCompletion jest zestaw do SQL_DRIVER_NOPROMPT, próba połączenia początkowego zakończy się niepowodzeniem, jeśli hasło wygasło.Wartość SQLSTATE 28000 i wartość kodu błąd macierzysty 18487 są zwracane przez kolejne wywołania SQLError or SQLGetDiagRec.

Jeśli DriverCompletion została ustawiona na jakąkolwiek inną wartość, użytkownik widzi SQL Server Logowania oknach, niezależnie od tego, niezależnie od tego, czy hasło wygasło.Użytkownik może kliknąć przycisk na Opcje przycisk i sprawdź, czy Zmienianie hasła , aby zmienić hasło.

Jeśli użytkownik kliknie przycisk OK, a hasło wygasło, SQL Server Wyświetla monit o wprowadź i Potwierdź nowy za pomocą hasła Zmienianie hasła do serwera SQL okna dialogowego.

ODBC Monituj zachowanie i blokowania kont

Próba połączenia może zakończyć się niepowodzeniem ze względu na to konto jest zablokowane.Jeśli tak się stanie po wyświetlania konto logowania do programu SQL Server okna dialogowego, komunikat o błędzie serwera są wyświetlane dla użytkownika, a próba połączenia została przerwana.Może również wystąpić po wyświetlania Zmień hasło SQL Server oknach, jeśli użytkownik wprowadzi Zła wartość dla starego hasła.W tym przypadek jest wyświetlany ten sam komunikat o błędzie, a próba połączenia została przerwana.

Pula połączeń ODBC, wygaśnięcie hasła i zablokowanych kont

Może być ono zablokowane konta lub jego hasło może wygaśnie w czasie, gdy połączenie jest wciąż aktywne w puli połączeń.Serwer sprawdza wygasłego hasła i zablokowane konta dwukrotnie.Pierwsza jest podczas tworzenia połączenia.Drugi razem, gdy jest na zresetowanie połączenia, gdy połączenie jest pobierana z puli.

Podczas próby resetowania zakończy się niepowodzeniem, połączenie zostanie usunięte z puli i zwracany jest błąd.

ODBC programowanej wygaśnięcia hasła

The SQL Server Native klient ODBC driver supports password expiration through the addition of the SQL_COPT_SS_OLDPWD atrybut which is zestaw before connecting to the server using the SQLSetConnectAttr funkcja.

Atrybut SQL_COPT_SS_OLDPWD dojścia połączenia odwołuje się do wygasłego hasła.Istnieje atrybut ciąg połączenia, nie dla tego atrybutu, to może kolidować z puli połączeń.Jeśli logowania się powiedzie się, sterownik usuwa ten atrybut.

The SQL Server Native klient ODBC driver returns SQL_ERROR in four cases for this feature: Wygaśnięcie hasła, konfliktu zasady haseł, blokady kont, a właściwość stare hasło jest zestaw podczas korzystania z uwierzytelnianie systemu Windows. Sterownik zwraca komunikat o błędzie właściwe dla użytkownika po SQLGetDiagField jest wywoływany.