13.7.1.10 SÆT PASSWORD Erklæring
SET PASSWORD
erklæring tildeler en adgangskode til en MySQL bruger konto. Adgangskoden kan være enten eksplicit angivet i sætningen eller tilfældigt genereret af Mys .l. Erklæringen kan også indeholde en pass .ord-verifikationsklausul, der angiver den konto nuværende adgangskode, der skal udskiftes, og en klausul, der styrer, om en konto har en sekundær adgangskode., '
og auth_string
''
repræsenterer hver en klar tekst (ikke-krypteret) adgangskode.current_auth_string
'
i Stedet for at bruge SET PASSWORD
for at tildele adgangskoder, ALTER USER
er foretrukket opgørelse for konto ændringer, herunder tildeling af adgangskoder., For eksempel:
ALTER USER user IDENTIFIED BY 'auth_string';
Klausuler for random password generering, password kontrol, og sekundære adgangskoder gælder kun for de konti, bruge en godkendelse plugin der gemmer legitimationsoplysninger internt til MySQL. For konti, der bruger et plugin, der udfører godkendelse mod et legitimationssystem, der er eksternt til Mys .l, skal adgangskodestyring også håndteres eksternt mod dette system. Yderligere oplysninger om intern opbevaring af legitimationsoplysninger findes i afsnit 6.2.15, “adgangskodehåndtering”.,
REPLACE '
klausul udfører password kontrol og er tilgængelig som af MySQL 8.0.13. Hvis givet:current_auth_string
'
-
REPLACE
angiver den konto aktuelle adgangskode, der skal udskiftes, som en clearte .t (ikke-krypteret) streng. -
klausulen skal angives, hvis adgangskodeændringer for kontoen er nødvendige for at angive den aktuelle adgangskode, som bekræftelse af, at den bruger, der forsøger at foretage ændringen, faktisk kender den aktuelle adgangskode.,
-
klausulen er valgfri, hvis adgangskoden ændres for kontoen, men ikke behøver at angive den aktuelle adgangskode.
-
sætningen mislykkes, hvis klausulen er angivet, men ikke stemmer overens med den aktuelle adgangskode, selvom klausulen er valgfri.
-
REPLACE
kan kun angives, når du ændrer kontoadgangskoden for den aktuelle bruger.
For mere information om password kontrol ved at angive den aktuelle adgangskode, se Afsnit 6.2.15, “Password”.,
RETAIN CURRENT PASSWORD
-klausulen implementerer dobbelt adgangskodefunktion og er tilgængelig fra Mys .l 8.0.14. Hvis givet:
-
RETAIN CURRENT PASSWORD
bevarer en konto nuværende adgangskode som sin sekundære adgangskode, erstatter enhver eksisterende sekundær adgangskode. Den nye adgangskode bliver den primære adgangskode, men klienter kan bruge kontoen til at oprette forbindelse til serveren ved hjælp af enten den primære eller sekundære adgangskode., (Undtagelse: Hvis den nye adgangskode, der er angivet afSET PASSWORD
– sætningen, er tom, bliver den sekundære adgangskode også tom, selvomRETAIN CURRENT PASSWORD
er angivet.) -
Hvis du angiver
RETAIN CURRENT PASSWORD
for en konto, der har en tom primær adgangskode, mislykkes erklæringen. -
Hvis en konto har en sekundær adgangskode, og du kan ændre dens primære adgangskode, uden at angive
RETAIN CURRENT PASSWORD
, den sekundære adgangskode forbliver uændret.
For mere information om brug af dobbelte adgangskoder, se afsnit 6.2.,15, “Pass Passwordord Management”.
SET PASSWORD
tilladelser disse auth_option
syntaks:
-
= '
auth_string
'Tildeler den konto givet bogstavelig adgangskode.
-
TO RANDOM
tildeler kontoen en adgangskode tilfældigt genereret af Mys .l. Erklæringen returnerer også clearte .t-adgangskoden i et resultatsæt for at gøre det tilgængeligt for brugeren eller applikationen, der udfører erklæringen.,
for detaljer om resultatsættet og karakteristika for tilfældigt genererede adgangskoder, se tilfældig Adgangskodegenerering.
tilfældig adgangskodegenerering er tilgængelig fra Mys .l 8.0.18.
Under nogle omstændigheder SET PASSWORD
kan blive optaget i server logs eller på klientsiden i en historie-fil som f.eks. ~/.mysql_history
hvilket betyder, at cleartext passwords kan læses af enhver, der har læse-adgang til disse oplysninger., For oplysninger om de betingelser, hvorunder dette sker for serverlogfiler og hvordan man styrer det, se Afsnit 6.1.2.3, “adgangskoder og logning”. For lignende oplysninger om klientsiden logning, Se afsnit 4.5.1.3, “Mys .l klient logning”.,p> SET PASSWORD
kan bruges med eller uden en FOR
bestemmelse, der udtrykkeligt nævner en brugerkonto:
-
Med
FOR
klausul, at den erklæring, der angiver adgangskoden for den angivne konto, der skal findes:user
SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
-
uden
FOR
klausul, at den erklæring, der angiver adgangskoden for den aktuelle bruger:user
SET PASSWORD = 'auth_string';
Enhver klient der forbinder til serveren ved hjælp af en nonanonymous konto, der kan ændre adgangskoden for denne konto., (Især kan du ændre din egen adgangskode.) For at se, hvilken konto serveren har godkendt dig som påberåbe
CURRENT_USER()
funktion:SELECT CURRENT_USER();
Hvis FOR
klausulen er givet, at den konto, navn, bruger-format er beskrevet i Afsnit 6.2.4, “Angive kontonavne”. For eksempel: user
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';
værtsnavndelen af kontonavnet, hvis udeladt, er som standard '%'
.,
SET PASSWORD
fortolker strengen som en klartekst-streng, sender det til godkendelse plugin, der er forbundet med kontoen, og gemmer resultatet, som returneres af plugin på kontoen række i mysql.user
system bordet. (Dette plugin får mulighed for at hash værdien i kryptering format det forventer. Dette plugin kan bruge værdien som angivet, i hvilket tilfælde ingen hashing sker.,)
Indstilling af adgangskoden til en navngiven konto (med en FOR
klausul) kræver UPDATE
privilegium for de mysql
system-skema. Indstilling af adgangskoden til dig selv (for en ikke-anonym konto uden FOR
klausul) kræver ingen særlige privilegier.,
Erklæringer om, at ændre sekundære adgangskoder kræve, at disse privilegier:
-
APPLICATION_PASSWORD_ADMIN
privilegium er forpligtet til at brugeRETAIN CURRENT PASSWORD
klausul forSET PASSWORD
erklæringer, der gælder for din egen regning. Privilegiet er påkrævet for at manipulere din egen sekundære adgangskode, fordi de fleste brugere kun kræver en adgangskode., -
Hvis en konto er tilladt at manipulere sekundære adgangskoder til alle konti, der bør gives
CREATE USER
privilegier snarere endAPPLICATION_PASSWORD_ADMIN
.
Når read_only
system-variablen er aktiveret, SET PASSWORD
kræver CONNECTION_ADMIN
privilegium (eller deprecated SUPER
privilegium), i tillæg til eventuelle andre nødvendige privilegier.
For yderligere oplysninger om indstilling af adgangskoder og godkendelsesplugins, se afsnit 6.2.,14, “tildeling af kontoadgangskoder”, og afsnit 6.2.17,”pluggbar godkendelse”.