13.7.1.10 ANGI PASSORD Uttalelse
SET PASSWORD uttalelse tildeler en passordet til MySQL-brukerkonto. Passordet kan være enten uttrykkelig angitt i erklæringen eller er tilfeldig generert av MySQL. Uttalelsen kan også inkludere et passord-bekreftelse klausul som angir kontoen din nåværende passord skal skiftes ut, og en klausul som styrer om en konto er en sekundær passord., ' og auth_string'' hver representerer en cleartext (ukryptert passord.current_auth_string'
Snarere enn å bruke SET PASSWORD for å tilordne passord, ALTER USER er den foretrukne uttalelse for kontoen endringer, inkludert tildeling av passord., For eksempel:
ALTER USER user IDENTIFIED BY 'auth_string';
Klausuler for tilfeldig passord generasjon, passord bekreftelse, og sekundær passordene gjelder bare for kontoer som bruker en godkjenning plugin som lagrer legitimasjon internt til MySQL. For kontoer som bruker en plugin som foretar autentisering mot en legitimasjon system som er eksterne til MySQL-passord management, må håndteres eksternt mot at systemet så godt. For mer informasjon om interne legitimasjon lagring, kan du se Delen 6.2.15, «Passord».,
REPLACE ' – punkt utfører passord bekreftelse og er tilgjengelig MySQL 8.0.13. Hvis det er gitt:current_auth_string'
-
REPLACEangir kontoen din nåværende passord skal byttes ut, som en cleartext (kryptert) string. -
klausulen må bli gitt hvis passordet endringer for den kontoen er nødvendig for å angi det gjeldende passordet, som bekreftelse på at brukeren prøver å gjøre endringen faktisk vet du det gjeldende passordet.,
-
klausulen er valgfri hvis passordet endringer for kontoen kan, men trenger ikke å oppgi det gjeldende passordet.
-
uttalelsen mislykkes hvis betingelsen er gitt, men ikke passer med det gjeldende passordet, selv om klausulen er valgfritt.
-
REPLACEkan bare angis når du endrer passordet for den aktuelle brukeren.
For mer informasjon om passord verifisering ved å angi det gjeldende passordet, kan du se Delen 6.2.15, «Passord».,
RETAIN CURRENT PASSWORD klausulen implementerer dual-passord kapasitet og er tilgjengelig MySQL 8.0.14. Hvis det er gitt:
-
RETAIN CURRENT PASSWORDbeholder en konto nåværende passord som sitt sekundære passord, og erstatter alle eksisterende videregående passord. Det nye passordet blir det primære passord, men kundene kan bruke kontoen til å koble til serveren ved å bruke enten primær eller sekundær passord., (Unntak: Hvis det nye passordet som er angitt avSET PASSWORDuttalelse er tom, er den sekundære passord blir tomt som godt, selv omRETAIN CURRENT PASSWORDer gitt.) -
Hvis du vil angi
RETAIN CURRENT PASSWORDfor en konto som har en tom primære passord, oppstilling mislykkes. -
Hvis en konto har en sekundær passord og endre dens primære passord uten å angi
RETAIN CURRENT PASSWORD, sekundær passordet forblir uendret.
For mer informasjon om bruk av dobbel passord, se Kapittel 6.2.,15, «Passord».
SET PASSWORD tillatelser disse auth_option syntaxes:
-
= 'auth_string'Tilegner konto gitt bokstavelig passord.
-
TO RANDOMTilegner konto passord er tilfeldig generert av MySQL. Uttalelsen returnerer også cleartext passord i et resultatsett for å gjøre det tilgjengelig for brukeren eller programmet utfører uttalelse.,
For mer informasjon om resultat og egenskaper av tilfeldig generert passord, se Tilfeldig Passord Generasjon.
Tilfeldig passord generasjon er tilgjengelig MySQL 8.0.18.
Under noen omstendigheter, SET PASSWORD kan bli tatt opp i tjenerloggene eller på klientsiden i en historie fil, for eksempel ~/.mysql_history, noe som betyr at cleartext passord kan leses av hvem som helst å ha lest tilgang til denne informasjonen., For informasjon om forholdene der dette skjer for server logger og hvordan du kan kontrollere det, se Avsnitt 6.1.2.3, «Passord og Logge». For tilsvarende informasjon om klient-side-logging, se Avsnitt 4.5.1.3, «mysql-Klienten Logging».,p> SET PASSWORD kan brukes med eller uten en FOR klausulen, som eksplisitt navn du en brukerkonto:
-
Med
FORklausulen, oppstilling angir passordet for den angitte konto, som må være på plass:userSET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; -
uten
FORklausulen, oppstilling angir passordet for den aktuelle bruker:userSET PASSWORD = 'auth_string';Enhver klient som kobler seg til serveren ved å bruke en nonanonymous-kontoen din, kan du endre passordet for kontoen., (I særdeleshet, kan du endre ditt eget passord.) For å se hvilken konto server godkjente deg som bruker
CURRENT_USER()funksjoner:SELECT CURRENT_USER();
Hvis en FOR klausulen er gitt, kontonavnet har formatet beskrevet i Avsnitt 6.2.4, «Angi Konto Navn». For eksempel: user
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';
vertsnavnet som er en del av navnet på kontoen, hvis utelatt, antas '%'.,
SET PASSWORD tolker strengen som en cleartext streng, går det til godkjenning plugin som er knyttet til kontoen, og lagrer resultatet som returneres av plugin i kontoen rad i mysql.user system-tabellen. (Plugin er gitt anledning til å hash-verdien til kryptering format det forventer. Programtillegget kan bruke den verdien som er angitt, og i så fall ingen nummerering oppstår.,)
Angi passord for en navngitt konto (med en FOR klausulen) krever UPDATE privilegium for mysql system-skjema. Angi passordet for deg selv (for en nonanonymous konto med ingen FOR klausulen) krever ingen spesielle privilegier.,
Uttalelser som kan endre videregående passord kreve disse rettighetene:
-
APPLICATION_PASSWORD_ADMINrettighet som kreves for å brukeRETAIN CURRENT PASSWORDklausulen forSET PASSWORDuttalelser som gjelder for din egen konto. Den rettighet som kreves for å manipulere din egen sekundær passord fordi de fleste brukere trenger bare ett passord., -
Hvis en konto er å få lov til å manipulere videregående passord for alle kontoer, bør det være gitt
CREATE USERprivilegium, snarere ennAPPLICATION_PASSWORD_ADMIN.
Ved read_only system-variabelen er aktivert, SET PASSWORD krever CONNECTION_ADMIN privilegium (eller ugyldig SUPER privilegium), i tillegg til eventuelle andre nødvendige tilgangsrettigheter.
For mer informasjon om å angi passord og godkjenning plugins, se Kapittel 6.2.,14, «Tilordne Konto Passord», og § 6.2.17, «Pluggbare Godkjenning».