13.7.1.10 SET PASSWORD Statement
a SET PASSWORD
utasítás hozzárendel egy jelszót egy MySQL felhasználói fiók. Lehet, hogy a jelszó kifejezetten meg van adva a nyilatkozatban, vagy véletlenszerűen generálódik a MySQL. A nyilatkozat tartalmazhat egy jelszóellenőrzési záradékot is, amely meghatározza a kicserélendő fiók aktuális jelszavát, valamint egy záradékot, amely kezeli, hogy egy fiók rendelkezik-e másodlagos jelszóval., '
és auth_string
''
mindegyik cleartext (titkosítatlan) jelszót jelent.current_auth_string
'
ahelyett, hogy a SET PASSWORD
jelszavak hozzárendeléséhez, ALTER USER
a fiókmódosítások előnyben részesített nyilatkozata, beleértve a jelszavak hozzárendelését is., Például:
ALTER USER user IDENTIFIED BY 'auth_string';
a véletlen jelszó-generálásra, a jelszó-ellenőrzésre és a másodlagos jelszavakra vonatkozó záradékok csak azokra a fiókokra vonatkoznak, amelyek hitelesítési bővítményt használnak, amely belsőleg tárolja a MySQL hitelesítő adatait. A MySQL-en kívüli hitelesítő rendszerrel szemben hitelesítést végző plugint használó fiókok esetében a jelszókezelést külsőleg is kezelni kell az adott rendszerrel szemben. A belső hitelesítő adatok tárolásával kapcsolatos további információkért lásd a 6.2.15. szakaszt: “jelszókezelés”.,
aREPLACE '
záradék jelszó-ellenőrzést végez, és a MySQL 8.0.13-tól érhető el. Ha adott:current_auth_string
'
-
REPLACE
meghatározza a fiók aktuális jelszavát, amelyet cleartext (titkosítatlan) karakterláncként kell cserélni. -
a záradékot akkor kell megadni, ha a fiók jelszavának megváltoztatására van szükség az aktuális jelszó megadásához, annak ellenőrzéséhez, hogy a változást megkísérlő felhasználó valóban ismeri-e az aktuális jelszót.,
-
a záradék opcionális, ha a fiók jelszava megváltozik, de nem kell megadnia az aktuális jelszót.
-
a nyilatkozat sikertelen, ha a záradék meg van adva, de nem felel meg az aktuális jelszónak, még akkor sem, ha a záradék opcionális.
REPLACE
csak akkor adható meg, ha megváltoztatja a fiók jelszavát az aktuális felhasználó számára.
az aktuális jelszó megadásával kapcsolatos további információkért lásd a 6.2.15.,
a RETAIN CURRENT PASSWORD
záradék végrehajtja a kettős jelszó képesség és elérhető, mint a MySQL 8.0.14. Adott esetben:
-
RETAIN CURRENT PASSWORD
megtartja a fiók jelenlegi jelszavát másodlagos jelszavaként, helyettesítve bármely meglévő másodlagos jelszót. Az új jelszó lesz az elsődleges jelszó, de az ügyfelek a fiókkal csatlakozhatnak a kiszolgálóhoz az elsődleges vagy másodlagos jelszó használatával., (Kivétel: ha aSET PASSWORD
utasítás által megadott Új jelszó üres, akkor a másodlagos jelszó is üres lesz, még akkor is, ha aRETAIN CURRENT PASSWORD
meg van adva.) -
Ha a
RETAIN CURRENT PASSWORD
üres elsődleges jelszóval rendelkező fiók esetében a nyilatkozat sikertelen. -
Ha egy fiók másodlagos Jelszóval rendelkezik, és az elsődleges jelszót a
RETAIN CURRENT PASSWORD
megadása nélkül változtatja meg, a másodlagos jelszó változatlan marad.
a kettős jelszavak használatával kapcsolatos további információkért lásd a 6.2 pontot.,15, “Jelszókezelés”.
SET PASSWORD
>auth_option
syntaxes:
-
= '
auth_string
'a fiók a megadott szó Jelszó.
TO RANDOM
hozzárendeli a fiókhoz a MySQL által véletlenszerűen generált jelszót. A nyilatkozat A cleartext jelszót is visszaadja egy olyan eredménykészletben, amely elérhetővé teszi a nyilatkozatot végrehajtó felhasználó vagy alkalmazás számára.,
a véletlenszerűen generált jelszavak eredménykészletével és jellemzőivel kapcsolatos részletekért lásd: véletlen jelszó generálás.
véletlen jelszó generálása áll rendelkezésre, mint a MySQL 8.0.18.
bizonyos körülmények között, SET PASSWORD
rögzíthető szervernaplókban vagy a kliens oldalon egy olyan előzményfájlban, mint a ~/.mysql_history
, ami azt jelenti, hogy a cleartext jelszavak olvassa el bárki, aki elolvasta az információhoz való hozzáférést., A szervernaplókra és annak vezérlésére vonatkozó feltételeket lásd a 6.1.2.3.pontban, “jelszavak és naplózás”című részben. Az ügyféloldali naplózással kapcsolatos hasonló információkat lásd a 4.5.1.3.szakaszban, “MySQL kliens naplózás”.,p> SET PASSWORD
használható egy FOR
záradékkal, amely kifejezetten nevez egy felhasználói fiókot:
-
a
FOR
záradék, a nyilatkozat beállítja a megadott fiók jelszavát, amelynek léteznie kell:user
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
-
No
FOR
záradék, a nyilatkozat beállítja az aktuális felhasználó jelszavát:user
SET PASSWORD = 'auth_string';
bármely ügyfél ki csatlakozik a kiszolgálóhoz egy nem névadó fiók segítségével, megváltoztathatja a fiók jelszavát., (Különösen megváltoztathatja saját jelszavát.) Annak megtekintéséhez, hogy a kiszolgáló melyik fiókként hitelesítette Önt, hivatkozzon a
CURRENT_USER()
funkcióra:SELECT CURRENT_USER();
Ha aFOR
záradék van megadva, a fiók neve a szakaszban leírt formátumot használja 6.2.4, “fióknevek megadása”. Például: user
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';
a fióknév hosztnevének része, ha elhagyjuk, alapértelmezés szerint '%'
.,
SET PASSWORD
értelmezi a karakterláncot cleartext karakterláncként, átadja a fiókhoz társított hitelesítési bővítménynek, és tárolja a plugin által a mysql.user
rendszertáblázat fióksorában visszaküldött eredményt. (A plugin lehetőséget kap arra, hogy az értéket az általa elvárt titkosítási formátumba hasholja. A plugin a megadott értéket használhatja, ebben az esetben nem történik hashing.,)
egy megnevezett fiók jelszavának beállításához (aFOR
záradékkal) aUPDATE
jogosultság szükséges a mysql
rendszer sémához. A Jelszó beállítása magadnak (egy nem névadó fiókhoz, amelynek nincs FOR
záradéka) nem igényel különleges jogosultságokat.,
a másodlagos jelszavakat módosító nyilatkozatok a következő jogosultságokat igénylik:
-
a
APPLICATION_PASSWORD_ADMIN
jogosultság szükséges aRETAIN CURRENT PASSWORD
SET PASSWORD
nyilatkozatok, amelyek a saját fiókjára vonatkoznak. A kiváltság a saját másodlagos jelszó manipulálásához szükséges, mivel a legtöbb felhasználó csak egy jelszót igényel., -
Ha egy fiók számára engedélyezni kell a másodlagos jelszavak manipulálását minden fiók esetében, akkor a
CREATE USER
jogosultságot kell megadni aAPPLICATION_PASSWORD_ADMIN
helyett.
amikor a read_only
rendszerváltozó engedélyezve van, SET PASSWORD
megköveteli a CONNECTION_ADMIN
jogosultságot (vagy az elavult SUPER
privilege), amellett, hogy minden más szükséges kiváltságokat.
a jelszavak és a hitelesítési bővítmények beállításával kapcsolatos további információkat lásd a 6.2 pontban.,14, “fiók jelszavak hozzárendelése”, 6.2.17,”Dugaszolható hitelesítés”.