MySQL :: MySQL 8.0 Reference Manual :: 13.7.1.10 SET PASSWORD Statement (Polski)


13.7.1.10 SET PASSWORD Statement

SET PASSWORD Instrukcja przypisuje hasło do konto użytkownika MySQL. Hasło może być jawnie określone w instrukcji lub losowo wygenerowane przez MySQL. Oświadczenie może również zawierać klauzulę weryfikacji hasła, która określa aktualne hasło do konta, które ma zostać zastąpione, oraz klauzulę, która określa, czy konto ma dodatkowe hasło., 'auth_string' I'current_auth_string' każde z nich reprezentują hasło tekstowe (niezaszyfrowane).

Uwaga

zamiast używaćSET PASSWORDdo przypisywania haseł,ALTER USER jest preferowanym wyciągiem do zmiany konta, w tym przypisywania haseł., Na przykład:

ALTER USER user IDENTIFIED BY 'auth_string';

Uwaga

klauzule dotyczące generowania losowych haseł, weryfikacji haseł i haseł dodatkowych mają zastosowanie tylko do kont, które używają wtyczki uwierzytelniania, która przechowuje dane uwierzytelniające wewnętrznie w MySQL. W przypadku kont, które używają wtyczki, która wykonuje uwierzytelnianie przeciwko systemowi poświadczeń, który jest zewnętrzny do MySQL, zarządzanie hasłami musi być obsługiwane zewnętrznie wobec tego systemu, jak również. Więcej informacji na temat przechowywania danych uwierzytelnień wewnętrznych można znaleźć w sekcji 6.2.15, „zarządzanie hasłami”.,

klauzulaREPLACE 'current_auth_string' przeprowadza weryfikację hasła i jest dostępna od MySQL 8.0.13. Jeśli podano:

  • REPLACE określa bieżące hasło do konta, które ma zostać zastąpione, jako ciąg tekstowy (niezaszyfrowany).

  • klauzula musi być podana, jeśli zmiany hasła dla konta są wymagane, aby określić aktualne hasło, jako potwierdzenie, że użytkownik próbujący dokonać zmiany rzeczywiście zna aktualne hasło.,

  • klauzula jest opcjonalna, jeśli zmiana hasła dla konta może, ale nie musi określać bieżącego hasła.

  • instrukcja nie powiedzie się, jeśli podano klauzulę, ale nie pasuje do bieżącego hasła, nawet jeśli klauzula jest opcjonalna.

  • REPLACE można podać tylko przy zmianie hasła konta dla bieżącego użytkownika.

aby uzyskać więcej informacji na temat weryfikacji hasła poprzez podanie bieżącego hasła, patrz sekcja 6.2.15, „zarządzanie hasłami”.,

klauzulaRETAIN CURRENT PASSWORD implementuje funkcję podwójnego hasła i jest dostępna od MySQL 8.0.14. Jeśli podane:

  • RETAIN CURRENT PASSWORD zachowuje bieżące hasło konta jako swoje dodatkowe hasło, zastępując wszelkie istniejące dodatkowe hasło. Nowe hasło staje się hasłem podstawowym, ale klienci mogą korzystać z konta, aby połączyć się z serwerem za pomocą hasła podstawowego lub dodatkowego., (Wyjątek: jeśli nowe hasło określone w instrukcji SET PASSWORD jest puste, to dodatkowe hasło również staje się puste, nawet jeśli podano RETAIN CURRENT PASSWORD.)

  • Jeśli podaszRETAIN CURRENT PASSWORD dla konta z pustym hasłem głównym, polecenie nie powiedzie się.

  • Jeśli konto ma dodatkowe hasło i zmienisz jego podstawowe hasło bez podania RETAIN CURRENT PASSWORD, dodatkowe hasło pozostaje bez zmian.

aby uzyskać więcej informacji na temat stosowania podwójnych haseł, patrz punkt 6.2.,15, „Zarządzanie Hasłami”.

SET PASSWORD zezwala na te auth_option syntaxes:

  • = 'auth_string'

    przypisania konto podane dosłowne hasło.

  • TO RANDOM

    przypisuje do konta hasło wygenerowane losowo przez MySQL. Instrukcja zwraca również hasło cleartext w wyniku ustawionym tak, aby było dostępne dla użytkownika lub aplikacji wykonującej instrukcję.,

    aby uzyskać szczegółowe informacje na temat zestawu wyników i charakterystyk losowo generowanych haseł, zobacz losowe generowanie haseł.

    losowe generowanie haseł jest dostępne od MySQL 8.0.18.

ważne

w pewnych okolicznościach SET PASSWORD mogą być zapisywane w logach serwera lub po stronie klienta w pliku historii, takim jak ~/.mysql_history, co oznacza, że hasła cleartext mogą być czytany przez każdego, kto ma dostęp do tych informacji., Informacje na temat warunków, w jakich ma to miejsce dla dzienników serwera i jak je kontrolować, patrz sekcja 6.1.2.3, „hasła i logowanie”. Podobne informacje na temat logowania po stronie klienta można znaleźć w sekcji 4.5.1.3, „logowanie klienta mysql”.,p > SET PASSWORD może być używany z klauzulą FOR, która jawnie nazywa konto użytkownika:

  • z klauzulą FOR user, instrukcja ustawia hasło dla nazwanego konta, które musi istnieć:

    SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
  • bez FOR user klauzula, Instrukcja ustawia hasło dla bieżącego użytkownika:

    SET PASSWORD = 'auth_string';

    każdy klient, który łączy na serwerze używającym konta bez nazwy może zmienić hasło do tego konta., (W szczególności możesz zmienić własne hasło.) Aby zobaczyć, które konto uwierzytelnił serwer, wywołaj CURRENT_USER() funkcja:

    SELECT CURRENT_USER();

Jeśli podano klauzulę FOR user, nazwa konta używa formatu opisanego w sekcji 6.2.4, „określanie nazw kont”. Na przykład:

SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';

część nazwy hosta nazwy konta, jeśli została pominięta, domyślnie wynosi '%'.,

SET PASSWORD interpretuje łańcuch znaków jako łańcuch tekstowy, przekazuje go do wtyczki uwierzytelniania powiązanej z kontem i przechowuje wynik zwrócony przez wtyczkę w wierszu konta w tabeli systemowejmysql.user. (Wtyczka ma możliwość skrócenia wartości do oczekiwanego formatu szyfrowania. Wtyczka może użyć określonej wartości, w którym to przypadku nie występuje hashowanie.,)

ustawienie hasła dla nazwanego konta (z klauzuląFOR) wymaga przywilejuUPDATE dla schematu systemumysql. Ustawienie hasła dla siebie (dla konta nieanonimicznego bez klauzuli FOR) nie wymaga specjalnych uprawnień.,

polecenia modyfikujące hasła drugorzędne wymagają tych uprawnień:

  • APPLICATION_PASSWORD_ADMIN uprawnienia są wymagane do korzystania z klauzuli RETAIN CURRENT PASSWORD dla SET PASSWORD oświadczenia, które dotyczą Twojego własnego konta. Uprawnienie jest wymagane do manipulowania własnym dodatkowym hasłem, ponieważ większość użytkowników wymaga tylko jednego hasła.,

  • Jeśli konto ma być dozwolone do manipulowania drugorzędnymi hasłami dla wszystkich kont, należy mu przyznać uprawnieniaCREATE USER zamiastAPPLICATION_PASSWORD_ADMIN.

gdy zmienna systemowa read_only jest włączona, SET PASSWORD wymaga CONNECTION_ADMIN przywilej (lub przestarzały SUPER przywilej), oprócz wszelkich innych wymaganych przywilejów.

aby uzyskać dodatkowe informacje na temat ustawiania haseł i wtyczek uwierzytelniania, patrz punkt 6.2.,14, „Przypisywanie haseł do kont” oraz Sekcja 6.2.17, „uwierzytelnianie wtykowe”.

Share

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *