Sintassi
SET PASSWORD = { PASSWORD('some password') | OLD_PASSWORD('some password') | 'encrypted password' }
Descrizione
L’istruzioneSET PASSWORD
assegna una password a un account utente MariaDB esistente.
Se la password viene specificata utilizzando la funzione PASSWORD()
o OLD_PASSWORD()
, è necessario fornire il testo letterale della password. Se thepassword è specificato senza utilizzare nessuna delle due funzioni, la passwordshould essere il valore della password già crittografato come restituito da PASSWORD()
.,
OLD_PASSWORD()
dovrebbe essere usato solo se i tuoi client MariaDB/MySQL sono molto vecchi (< 4.0.0).
SenzaFOR
clausola, questa istruzione imposta la password per il currentuser. Qualsiasi client che si è connesso al server utilizzando un account non anonimo può modificare la password per tale account.
Con una clausolaFOR
, questa istruzione imposta la password per un account specifico sull’host del server corrente., Solo i client che hanno il privilegioUPDATE
per il databasemysql
possono farlo. Il valore utente deve essere generato nel formato user_name@host_name
, dove user_name
e host_name
sono esattamente come sono elencati nelle colonne Utente e host delmysql.user
voce tabella.
L’argomento diPASSWORD()
e la password data ai client MariaDB possono essere di lunghezza arbitraria.
Supporto del plugin di autenticazione
MariaDB che inizia con 10.,4
In MariaDB 10.4 e versioni successive,SET PASSWORD
(con o senzaPASSWORD()
) funziona per gli account autenticati tramite qualsiasi plugin di autenticazione che supporta le password memorizzate nella tabellamysql.global_priv
.
I plugin di autenticazioneed25519
,mysql_native_password
emysql_old_password
memorizzano le password nella tabellamysql.global_priv
.,
Se si esegueSET PASSWORD
su un account che si autentica con uno di questi plugin di autenticazione che memorizza le password nella tabellamysql.global_priv
, la funzionePASSWORD()
viene valutata dallo specifico plugin di autenticazione utilizzato dall’account. Il plugin di autenticazione hash la password con un metodo compatibile con quel plugin di autenticazione specifico.,
I plugin di autenticazione unix_socket
, named_pipe
, gssapi
e pam
non memorizzano le password nel mysql.global_priv
tabella. Questi plugin di autenticazione si basano su altri metodi per autenticare l’utente.,
Se si tenta di eseguire SET PASSWORD
su un account che esegue l’autenticazione con uno di questi plug-in di autenticazione che non memorizzare la password nel mysql.global_priv
tabella, quindi MariaDB Server genererà un avviso simile al seguente:
SET PASSWORD is ignored for users authenticating via unix_socket plugin
Vedi l’Autenticazione da MariaDB 10.4 per una panoramica di modifica di autenticazione in MariaDB 10.4.
MariaDB fino al 10.3
In MariaDB 10.,3 e prima, SET PASSWORD
(con o senza PASSWORD()
) funziona solo per gli account autenticato tramite mysql_native_password
o mysql_old_password
plug-in di autenticazione
senza password di Account Utente
account Utente non sempre richiedono la password per il login.
I plugin di autenticazioneunix_socket
,named_pipe
egssapi
non richiedono una password per autenticare l’utente.,
Il plugin di autenticazione pam
può richiedere o meno una password per autenticare l’utente, a seconda della configurazione specifica.
I plugin di autenticazione mysql_native_password
e mysql_old_password
richiedono password per l’autenticazione, ma la password può essere vuota. In tal caso, non è richiesta alcuna password.
Se si fornisce una password durante il tentativo di accedere al server come account che non richiede una password, il server MariaDB ignorerà semplicemente la password.
MariaDB che inizia con 10.,4
In MariaDB 10.4 e versioni successive, è possibile definire un account utente per utilizzare più plugin di autenticazione in uno specifico ordine di preferenza. Questo scenario specifico potrebbe essere più evidente in queste versioni, poiché un account potrebbe essere associato ad alcuni plugin di autenticazione che richiedono una password e altri no.
Esempio
Ad esempio, se hai una voce con i valori delle colonne Utente e HOST di ‘ bob
‘ e ‘ %.loc.,gov
‘, si scrive thestatement come questo:
SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
Se si desidera eliminare una password per un utente, si potrebbe fare:
SET PASSWORD FOR 'bob'@localhost = PASSWORD("");
Vedi Anche
- Convalida della Password Plugin – permette l’impostazione di criteri di base per la password
ALTER USER
Lascia un commento