MySQL :: MySQL 8.0 Reference Manual :: 13.7.1.10 SET PASSWORD Statement (Polski)
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., '
Iauth_string
''
każde z nich reprezentują hasło tekstowe (niezaszyfrowane).current_auth_string
'
zamiast używaćSET PASSWORD
do 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';
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 '
przeprowadza weryfikację hasła i jest dostępna od MySQL 8.0.13. Jeśli podano:current_auth_string
'
-
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 instrukcjiSET PASSWORD
jest puste, to dodatkowe hasło również staje się puste, nawet jeśli podanoRETAIN CURRENT PASSWORD
.) -
Jeśli podasz
RETAIN 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.
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
, instrukcja ustawia hasło dla nazwanego konta, które musi istnieć:user
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
-
bez
FOR
klauzula, Instrukcja ustawia hasło dla bieżącego użytkownika:user
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
, nazwa konta używa formatu opisanego w sekcji 6.2.4, „określanie nazw kont”. Na przykład: user
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 klauzuliRETAIN CURRENT PASSWORD
dlaSET 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ć uprawnienia
CREATE 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”.