13.7.1.10 SETA PAROLA Declarație
SET PASSWORD
declarație atribuie o parola de la un MySQL cont de utilizator. Parola poate fi specificată Explicit în declarație sau generată aleatoriu de MySQL. Declarația poate include, de asemenea, o clauză de verificare a parolei care specifică parola curentă a contului care trebuie înlocuită și o clauză care gestionează dacă un cont are o parolă secundară., '
și auth_string
''
reprezintă fiecare un text clar (necriptat) parola.current_auth_string
'
mai Degrabă decât folosind SET PASSWORD
să atribuiți parole, ALTER USER
este de preferat declarație pentru contul de modificări, inclusiv atribuirea parolelor., De exemplu:
ALTER USER user IDENTIFIED BY 'auth_string';
Clauze aleatoriu de generare a parolei, parola de verificare, și secundar parolele se aplică numai pentru conturile care folosesc un plugin de autentificare care stochează acreditările pe plan intern pentru MySQL. Pentru conturile care utilizează un plugin care efectuează autentificarea împotriva unui sistem de acreditări extern MySQL, gestionarea parolelor trebuie să fie gestionată extern și împotriva acelui sistem. Pentru mai multe informații despre stocarea acreditărilor interne, consultați secțiunea 6.2.15, „gestionarea parolelor”.,
REPLACE '
clauza efectuează verificarea parolei și este disponibilă începând cu MySQL 8.0.13. În cazul dat:current_auth_string
'
-
REPLACE
specifică cont parola curentă să fie înlocuit, ca un text clar (necriptat) șir. -
clauza trebuie să fie dat în cazul în care modificările parola pentru contul sunt necesare pentru a specifica parola curentă, ca verificare că utilizatorul încearcă să facă modificarea cunoaște de fapt parola curentă.,
-
clauza este opțională dacă modificările parolei pentru cont pot, dar nu trebuie să specifice parola curentă.
-
instrucțiunea eșuează dacă clauza este dată, dar nu se potrivește cu parola curentă, chiar dacă clauza este opțională.
-
REPLACE
poate fi specificat numai atunci când schimbați parola contului pentru utilizatorul curent.
Pentru mai multe informații despre verificarea parolei prin specificarea parolei curente, consultați secțiunea 6.2.15, „gestionarea parolelor”.,
clauza RETAIN CURRENT PASSWORD
implementează capabilitatea cu parolă dublă și este disponibilă începând cu MySQL 8.0.14. În cazul dat:
-
RETAIN CURRENT PASSWORD
păstrează un cont curent parola ca sa secundar parola, înlocuind orice secundare existente parola. Noua parolă devine parola principală, dar clienții pot utiliza contul pentru a se conecta la server folosind parola primară sau secundară., (Excepție: Dacă noua parola specificată prinSET PASSWORD
declarație este gol, parola secundar devine gol la fel de bine, chiar dacăRETAIN CURRENT PASSWORD
este dat.) -
Dacă specificați
RETAIN CURRENT PASSWORD
pentru un cont care are un gol primar parola, declarația eșuează. dacă un cont are o parolă secundară și îi schimbați parola principală fără a specificaRETAIN CURRENT PASSWORD
, parola secundară rămâne neschimbată.
Pentru mai multe informații despre utilizarea parolelor duble, consultați secțiunea 6.2.,15, „Gestionarea Parolei”.
SET PASSWORD
permite aceste auth_option
sintaxe:
-
= '
auth_string
'Atribuie contul dat literal parola.
-
TO RANDOM
atribuie contului o parolă generată aleatoriu de MySQL. Declarația returnează, de asemenea, parola cleartext într-un set de rezultate pentru a o pune la dispoziția utilizatorului sau a aplicației care execută declarația.,
Pentru detalii despre setul de rezultate și caracteristicile parolelor generate aleator, consultați generare aleatorie de parole.
generarea parolelor aleatorii este disponibilă începând cu MySQL 8.0.18.
În anumite circumstanțe, SET PASSWORD
pot fi înregistrate în jurnalele de pe server sau pe partea de client într-un fișier de istorie, cum ar fi ~/.mysql_history
, ceea ce înseamnă că, text clar parolele pot fi citite de oricine are acces de citire la aceste informații., Pentru informații despre condițiile în care se întâmplă acest lucru pentru jurnalele serverului și modul de control al acestuia, consultați secțiunea 6.1.2.3, „parole și logare”. Pentru informații similare despre logarea din partea clientului, consultați secțiunea 4.5.1.3, „logarea clientului mysql”.,p> SET PASSWORD
poate fi folosit cu sau fără un FOR
clauză care în mod explicit numele unui cont de utilizator:
-
Cu un
FOR
clauză, declarația stabilește parola pentru numele de cont, care trebuie să existe:user
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
-
Cu nici un
FOR
clauză, declarația stabilește parola pentru utilizatorul curent:user
SET PASSWORD = 'auth_string';
Orice client care se conectează la server folosind o nonanonymous cont poate schimba parola pentru acel cont., (În special, puteți schimba propria parolă.) Pentru a vedea ce cont server autentificat ca, invoca
CURRENT_USER()
funcția:SELECT CURRENT_USER();
Dacă un FOR
clauză este dat, numele contului utilizează formatul descris în Secțiunea 6.2.4″, Specificând Numele de Cont”. De exemplu: user
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';
numele De gazdă parte din numele de cont, dacă este omis, implicit '%'
.,
SET PASSWORD
interpretează ca un șir text clar șir, trece-l la autentificare plugin asociate cu contul, și stochează rezultatul returnat de către plugin-ul în contul rând în mysql.user
sistem de masă. (Plugin-ul este dat posibilitatea de a hash valoarea în formatul de criptare se așteaptă. Pluginul poate utiliza valoarea specificată, caz în care nu are loc nicio hashing.,)
Setarea parolei pentru un nume de cont (cu un FOR
clauza) necesită UPDATE
privilegiu pentru mysql
sistem schema. Setarea parolei pentru dvs. (pentru un cont nonanonim fără clauza FOR
) nu necesită privilegii speciale.,
Declarații care modifica secundar parole nevoie de aceste privilegii:
-
APPLICATION_PASSWORD_ADMIN
privilegiu este necesar pentru a utilizaRETAIN CURRENT PASSWORD
clauza pentruSET PASSWORD
declarații care se aplică la propriul cont. Privilegiul este necesar pentru a manipula propria parolă secundară, deoarece majoritatea utilizatorilor necesită o singură parolă., -
Dacă un cont este să li se permită să manipuleze secundar parole pentru toate conturile, ar trebui să fie acordat
CREATE USER
privilegiu, mai degrabă decâtAPPLICATION_PASSWORD_ADMIN
.
read_only
variabila de sistem este activată, SET PASSWORD
necesită CONNECTION_ADMIN
privilegiul (sau depreciate SUPER
privilegiu), în plus față de orice alte privilegiile necesare.
pentru informații suplimentare despre setarea parolelor și a plugin-urilor de autentificare, consultați secțiunea 6.2.,14, „atribuirea parolelor contului” și secțiunea 6.2.17, „autentificare conectabilă”.