MySQL :: MySQL 8.0 Manuale di riferimento :: 13.7.1.10 IMPOSTA l’istruzione PASSWORD

13.7.1.10 IMPOSTA l’istruzione PASSWORD

L’istruzione SET PASSWORDassegna una password a un account utente MySQL. La password può essere specificata esplicitamente nell’istruzione o generata casualmente da MySQL. L’istruzione può anche includere una clausola di verifica della password che specifica la password corrente dell’account da sostituire e una clausola che gestisce se un account ha una password secondaria., 'auth_string' e 'current_auth_string' rappresentano ciascuna una password in chiaro (non crittografata).

Nota

Invece di usare SET PASSWORDper assegnare le password, ALTER USER è l’istruzione preferita per le modifiche dell’account, inclusa l’assegnazione delle password., Ad esempio:

ALTER USER user IDENTIFIED BY 'auth_string';

Nota

Le clausole per la generazione casuale di password, la verifica della password e le password secondarie si applicano solo agli account che utilizzano un plugin di autenticazione che memorizza le credenziali internamente a MySQL. Per gli account che utilizzano un plugin che esegue l’autenticazione contro un sistema di credenziali esterno a MySQL, la gestione delle password deve essere gestita esternamente anche contro quel sistema. Per ulteriori informazioni sull’archiviazione interna delle credenziali, vedere Sezione 6.2.15, “Gestione delle password”.,

La clausolaREPLACE 'current_auth_string' esegue la verifica della password ed è disponibile da MySQL 8.0.13. Se specificato:

  • REPLACE specifica la password corrente dell’account da sostituire, come stringa in chiaro (non crittografata).

  • La clausola deve essere fornita se sono necessarie modifiche della password per l’account per specificare la password corrente, come verifica che l’utente che tenta di apportare la modifica conosca effettivamente la password corrente.,

  • La clausola è facoltativa se le modifiche della password per l’account possono ma non è necessario specificare la password corrente.

  • L’istruzione non riesce se viene fornita la clausola ma non corrisponde alla password corrente, anche se la clausola è facoltativa.

  • REPLACE può essere specificato solo quando si modifica la password dell’account per l’utente corrente.

Per ulteriori informazioni sulla verifica della password specificando la password corrente, vedere Sezione 6.2.15, “Gestione password”.,

La clausolaRETAIN CURRENT PASSWORD implementa la funzionalità dual-password ed è disponibile da MySQL 8.0.14. Se specificato:

  • RETAIN CURRENT PASSWORD mantiene una password corrente dell’account come password secondaria, sostituendo qualsiasi password secondaria esistente. La nuova password diventa la password principale, ma i client possono utilizzare l’account per connettersi al server utilizzando la password primaria o secondaria., (Eccezione: se la nuova password specificata dall’istruzione SET PASSWORD è vuota, anche la password secondaria diventa vuota, anche se viene fornita RETAIN CURRENT PASSWORD.)

  • Se si specificaRETAIN CURRENT PASSWORD per un account con una password primaria vuota, l’istruzione non riesce.

  • Se un account ha una password secondaria e si modifica la password primaria senza specificareRETAIN CURRENT PASSWORD, la password secondaria rimane invariata.

Per ulteriori informazioni sull’uso di password doppie, vedere Sezione 6.2.,15, “Gestione delle password”.

SET PASSWORD consente questiauth_optionsintassi:

  • = 'auth_string'

    Assegna l’account la password letterale data.

  • TO RANDOM

    Assegna all’account una password generata casualmente da MySQL. L’istruzione restituisce anche la password in chiaro in un set di risultati per renderla disponibile all’utente o all’applicazione che esegue l’istruzione.,

    Per i dettagli sul set di risultati e le caratteristiche delle password generate casualmente, vedere Generazione casuale di password.

    La generazione casuale di password è disponibile a partire da MySQL 8.0.18.

Importante

In alcuni casi, SET PASSWORD può essere registrato nei log del server o sul client in un file di storia come ~/.mysql_history il che significa che chiaro le password possono essere letti da chiunque abbia accesso in lettura alle informazioni., Per informazioni sulle condizioni in cui ciò si verifica per i log del server e su come controllarlo, vedere Sezione 6.1.2.3, “Password e registrazione”. Per informazioni simili sulla registrazione lato client, vedere Sezione 4.5.1.3, “Registrazione client mysql”.,p> SET PASSWORD può essere utilizzato con o senza un FOR clausola che espressamente il nome di un account utente:

  • Con un FOR user clausola, l’istruzione imposta la password per l’account dal nome, che deve esistere:

    SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
  • senza FOR user clausola, l’istruzione imposta la password per l’utente corrente:

    SET PASSWORD = 'auth_string';

    Ogni client che si connette al server utilizzando un account anonimi possibile modificare la password per l’account., (In particolare, è possibile modificare la propria password.) Per vedere quale account il server ti ha autenticato, invoca la funzione CURRENT_USER():

    SELECT CURRENT_USER();

Se viene fornita una clausola FOR user, il nome dell’account utilizza il formato descritto nella sezione 6.2.4, “Specificare i nomi degli account”. Ad esempio:

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

La parte del nome host del nome account, se omessa, viene impostata su '%'.,

SET PASSWORD interpreta la stringa come una stringa di testo chiaro, la passa al plugin di autenticazione associato all’account e memorizza il risultato restituito dal plugin nella riga dell’account nella tabella di sistema mysql.user. (Il plugin ha la possibilità di hash il valore nel formato di crittografia che si aspetta. Il plugin può utilizzare il valore come specificato, nel qual caso non si verifica alcun hashing.,)

L’impostazione della password per un account con nome (con una clausolaFOR) richiede il privilegioUPDATE per lo schema di sistemamysql. L’impostazione della password per se stessi (per un account non anonimo con nessuna clausolaFOR) non richiede privilegi speciali.,

Istruzioni che modificano secondaria password richiedono questi privilegi:

  • APPLICATION_PASSWORD_ADMIN privilegi è necessario utilizzare il tag RETAIN CURRENT PASSWORD articolo SET PASSWORD istruzioni che si applicano al vostro account. Il privilegio è necessario per manipolare la propria password secondaria perché la maggior parte degli utenti richiede solo una password.,

  • Se un account deve essere autorizzato a manipolare password secondarie per tutti gli account, dovrebbe essere concesso il privilegioCREATE USERanzichéAPPLICATION_PASSWORD_ADMIN.

Quando la variabile di sistema read_only è abilitata, SET PASSWORD richiede il privilegio CONNECTION_ADMIN (o la deprecata SUPER privilegio), oltre a qualsiasi altro privilegio richiesto.

Per ulteriori informazioni sull’impostazione di password e plugin di autenticazione, vedere Sezione 6.2.,14, “Assegnazione delle password dell’account” e Sezione 6.2.17, “Autenticazione collegabile”.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *