4.3.7 Setarea parolelor
În cele mai multe cazuri, trebuie să utilizați comanda GRANT pentru a specifica utilizatorii și parolele acestora. astfel încât informațiile de mai jos sunt pentru utilizatorii avansați. Vezi secțiunea 4.3.1 Sintaxă pentru comenzile GRANT și REVOKE.
Exemplele prezentate în secțiunile anterioare demonstrează un principiu important, și anume că dacă salvați parole non-goale utilizând instrucțiunile INSERT sau UPDATE, funcția PASSWORD () trebuie utilizată pentru a le cripta. Acest lucru se întâmplă deoarece în tabelul utilizatorilor parolele sunt stocate într-o formă criptată și nu ca text simplu. Să presupunem că am trecut cu vederea acest lucru și stabilim parolele după cum urmează:
Ca urmare a executării acestor comenzi în tabelul utilizatorilor, valoarea parolei biscuitului va fi stocată ca text simplu. Atunci când utilizatorul Jeffrey încearcă să se conecteze la server folosind această parolă, clientul mysql îl criptează folosind funcția PASSWORD (). va genera un vector de autentificare bazat pe parola criptată și numărul ales aleatoriu primit de la server și va trimite rezultatul la server. Serverul folosește valoarea parolei din tabela utilizatorului (în acest caz, este o valoare biscuit a necriptată) pentru a efectua exact aceleași calcule și a compara rezultatele. Rezultatele nu se potrivesc și serverul nu vă va permite să vă conectați:
Înainte de a intra în tabela de utilizator, parolele trebuie să fie criptate, astfel încât instrucțiunea INSERT trebuie utilizată după cum urmează:
Când utilizați instrucțiunea SET PASSWORD, trebuie să utilizați și funcția PASSWORD ().
Dacă parola este setată utilizând instrucțiunea GRANT. IDENTIFICAT de către sau comanda mysqladmin parola. nu este nevoie să utilizați funcția PASSWORD (). Ambele comenzi auto-criptează parola, astfel încât parola să fie specificată ca biscuit. de exemplu, în acest fel:
Notă: Funcția PASSWORD () criptează parole diferite de Unix. Nu presupune că, dacă parolele pentru Unix si MySQL pentru același, funcția PASSWORD () va exact același rezultat ca și criptare fișierul de parole Unix. Vezi secțiunea 4.3.2 Numele și parolele utilizatorilor MySQL.