MySQL :: MySQL 8.0 Reference Manual :: 13.7.1.10 NASTAVIT HESLO Prohlášení

13.7.1.10 NASTAVIT HESLO Prohlášení

SET PASSWORD prohlášení přiřadí heslo k MySQL účtu uživatele. Heslo může být buď výslovně uvedeno v prohlášení, nebo náhodně generované MySQL. Prohlášení může také obsahovat klauzuli o ověření hesla, která určuje aktuální heslo účtu, které má být nahrazeno, a klauzuli, která spravuje, zda má účet sekundární heslo., 'auth_string' a 'current_auth_string' každý představuje cleartext (nešifrované) heslo.

Poznámka

Spíše než pomocí SET PASSWORD přiřadit hesla ALTER USER je preferovaný prohlášení za úvahu změny, včetně přiřazení hesla., Například:

ALTER USER user IDENTIFIED BY 'auth_string';

Poznámka

Klauzule pro random generace heslo, ověření hesla, a sekundární heslo platí pouze pro účty, které používají autentizační plugin, který ukládá přihlašovací údaje interně pro MySQL. U účtů, které používají plugin, který provádí ověřování proti systému pověření, který je externí pro MySQL, musí být správa hesel řešena externě i proti tomuto systému. Další informace o interním úložišti pověření naleznete v části 6.2.15, „Správa hesel“.,

REPLACE 'current_auth_string' klauzule provádí ověření hesla a je k dispozici od MySQL 8.0.13. Pokud dané:

  • REPLACE určuje účet aktuální heslo, které mají být nahrazeny, jako cleartext (nešifrované) řetězec.

  • klauzule musí být uvedena, pokud jsou pro zadání aktuálního hesla vyžadovány změny hesla pro účet, jako ověření, že uživatel, který se pokouší provést změnu, skutečně zná aktuální heslo.,

  • klauzule je volitelná, pokud změny hesla pro účet mohou, ale nemusí specifikovat aktuální heslo.

  • příkaz selže, pokud je klauzule uvedena, ale neodpovídá aktuálnímu heslu, i když je klauzule volitelná.

  • REPLACE lze zadat pouze při změně hesla účtu pro aktuálního uživatele.

další informace o ověření hesla zadáním aktuálního hesla, viz Bod 6.2.15, „Správa Heslo“.,

klauzuleRETAIN CURRENT PASSWORD implementuje schopnost dvojího hesla a je k dispozici od MySQL 8.0.14. Pokud dané:

  • RETAIN CURRENT PASSWORD zachovává účet aktuální heslo jako své sekundární heslo, které nahradí všechny existující sekundární heslo. Nové heslo se stává primárním heslem, ale klienti mohou pomocí účtu připojit k serveru pomocí primárního nebo sekundárního hesla., (Výjimka: Pokud nové heslo zadané pomocí SET PASSWORD prohlášení je prázdný, sekundární heslo se stává prázdný, i když RETAIN CURRENT PASSWORD je dáno.)

  • Pokud zadáte RETAIN CURRENT PASSWORD pro účet, který má prázdné primární heslo, příkaz selže.

  • pokud má účet sekundární heslo a změníte jeho primární heslo bez zadání RETAIN CURRENT PASSWORD, sekundární heslo zůstává nezměněno.

Další informace o používání duální hesla, viz bod 6.2.,15, „Správa Hesel“.

SET PASSWORD povolení auth_option syntaxí:

  • = 'auth_string'

    Přiřadí účet dané doslovný heslo.

  • TO RANDOM

    přiřadí účtu heslo náhodně generované MySQL. V prohlášení také vrátí cleartext hesla v důsledku nastaven tak, aby bylo k dispozici pro uživatele nebo aplikace spuštění prohlášení.,

    podrobnosti o sadě výsledků a charakteristikách náhodně generovaných hesel naleznete v části generování náhodných hesel.

    generování náhodných hesel je k dispozici od MySQL 8.0.18.

v některých případech SET PASSWORD mohou být zaznamenány v protokolech serveru nebo na straně klienta v historii souboru jako ~/.mysql_history, což znamená, že cleartext hesla může být přečíst každý, kdo má přístup pro čtení těchto informací., Informace o podmínkách, za kterých k tomu dochází pro protokoly serveru a jak je ovládat, naleznete v části 6.1.2.3 „hesla a protokolování“. Podobné informace o protokolování na straně klienta naleznete v části 4.5.1.3 „protokolování klienta mysql“.,p> SET PASSWORD může být použit s nebo bez FOR ustanovení, které výslovně jména uživatelského účtu:

  • FOR user klauzule, příkaz nastaví heslo pro jménem účtu, který musí existovat:

    SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
  • bez FOR user klauzule, příkaz nastaví heslo pro aktuálního uživatele:

    SET PASSWORD = 'auth_string';

    každý klient, který se připojuje k serveru pomocí neanonymní účet, můžete změnit heslo pro tento účet., (Zejména můžete změnit své vlastní heslo.) Chcete-li zjistit, který účet na serveru ověřené vás, jak vyvolat CURRENT_USER() funkce:

    SELECT CURRENT_USER();

Pokud FOR user doložky je uveden název účtu používá formát je popsáno v kapitole 6.2.4, „Upřesní Názvy Účtů“. Například:

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

název hostitele část názvu účtu, pokud je vynechán, výchozí hodnoty '%'.,

SET PASSWORD interpretuje řetězec jako cleartext řetězec, předá jej k ověření plugin spojené s účtem, a výsledek uloží vrácené plugin na účtu řádek v mysql.user systémové tabulky. (Plugin má možnost hash hodnotu do šifrovacího formátu, který očekává. Plugin může použít hodnotu, jak je uvedeno, v takovém případě nedochází k hašování.,)

Nastavení hesla pro pojmenované účet (s FOR doložka) vyžaduje UPDATE oprávnění pro mysql systém schématu. Nastavení hesla pro sebe (pro neanonymní účet bez klauzule FOR) nevyžaduje žádná zvláštní oprávnění.,

příkazy, které změnit sekundární hesla vyžadují tato oprávnění:

  • APPLICATION_PASSWORD_ADMIN oprávnění je nutné použít RETAIN CURRENT PASSWORD klauzule pro SET PASSWORD příkazy, které se vztahují na váš vlastní účet. Oprávnění je vyžadováno pro manipulaci s vlastním sekundárním heslem, protože většina uživatelů vyžaduje pouze jedno heslo.,

  • Pokud účet je povoleno manipulovat sekundární hesla pro všechny účty, to by měla být samozřejmost CREATE USER výsadou spíše než APPLICATION_PASSWORD_ADMIN.

Když read_only systémové proměnné je povoleno, SET PASSWORD vyžaduje CONNECTION_ADMIN oprávnění (nebo zastaralé SUPER oprávnění), navíc k jakékoli jiné požadované oprávnění.

Další informace o nastavení hesel a autentizačních pluginů naleznete v části 6.2.,14, “ přiřazení hesel účtu „a oddíl 6.2.17,“Pluggable Authentication“.

Share

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *