Mysql :: mysql 8.0 Reference Manual:: 13.7.1.10 ange lösenord uttalande

13.7.1.10 ange lösenord uttalande

SET PASSWORD uttalande tilldelar ett lösenord till en MySQL användarkonto. Lösenordet kan antingen uttryckligen anges i uttalandet eller slumpmässigt genereras av MySQL. Uttalandet kan också innehålla en klausul om lösenordsverifiering som anger det aktuella lösenordet för kontot som ska ersättas och en klausul som hanterar om ett konto har ett sekundärt lösenord., 'auth_string' och'current_auth_string' representerar varje cleartext (okrypterat) lösenord.

Obs

i stället för att användaSET PASSWORD för att tilldela lösenord ärALTER USER det föredragna uttalandet för kontoändringar, inklusive att tilldela lösenord., Till exempel:

ALTER USER user IDENTIFIED BY 'auth_string';

Obs

klausuler för slumpmässig lösenordsgenerering, lösenordsverifiering och sekundära lösenord gäller endast konton som använder ett autentiseringsinsticksprogram som lagrar autentiseringsuppgifter internt till MySQL. För konton som använder ett plugin som utför autentisering mot ett autentiseringssystem som är externt till MySQL, måste lösenordshantering hanteras externt mot det systemet också. Mer information om intern inloggningsuppgifter finns i avsnitt 6.2.15, ”lösenordshantering”.,

REPLACE 'current_auth_string' utför lösenordsverifiering och är tillgänglig från och med MySQL 8.0.13. Om det ges:

  • REPLACE anger det aktuella lösenordet för kontot som ska ersättas, som en cleartext (okrypterad) sträng.

  • klausulen måste anges om lösenord ändras för kontot krävs för att ange det aktuella lösenordet, som verifiering att användaren som försöker göra ändringen faktiskt känner till det aktuella lösenordet.,

  • klausulen är valfri om lösenordet ändras för kontot men behöver inte ange det aktuella lösenordet.

  • uttalandet misslyckas om klausulen ges men inte matchar det aktuella lösenordet, även om klausulen är valfri.

  • REPLACE kan endast anges när du ändrar kontolösenordet för den aktuella användaren.

För mer information om lösenordsverifiering genom att ange det aktuella lösenordet, se avsnitt 6.2.15, ”lösenordshantering”.,

klausulenRETAIN CURRENT PASSWORD implementerar dubbla lösenord och är tillgänglig från och med MySQL 8.0.14. Om det ges:

  • RETAIN CURRENT PASSWORD behåller ett konto nuvarande lösenord som dess sekundära lösenord, ersätter alla befintliga sekundära lösenord. Det nya lösenordet blir det primära lösenordet, men klienter kan använda kontot för att ansluta till servern med antingen det primära eller sekundära lösenordet., (Undantag: om det nya lösenordet som anges av SET PASSWORD – satsen är tomt blir det sekundära lösenordet också tomt, även omRETAIN CURRENT PASSWORD ges.)

  • om du angerRETAIN CURRENT PASSWORD för ett konto som har ett tomt primärt lösenord misslyckas uttalandet.

  • om ett konto har ett sekundärt lösenord och du ändrar dess primära lösenord utan att ange RETAIN CURRENT PASSWORD förblir det sekundära lösenordet oförändrat.

Mer information om användning av dubbla lösenord finns i avsnitt 6.2.,15, ”Lösenordshantering”.

SET PASSWORD tillåter dessaauth_option syntaxer:

  • = 'auth_string'

    tilldelar kontot det angivna bokstavliga lösenordet.

  • TO RANDOM

    tilldelar kontot ett lösenord som slumpmässigt genereras av MySQL. Uttrycket returnerar också cleartext-lösenordet i en resultatuppsättning för att göra det tillgängligt för användaren eller programmet som utför uttalandet.,

    För mer information om resultatuppsättningen och egenskaperna hos slumpmässigt genererade lösenord, Se slumpmässig lösenordsgenerering.

    slumpmässig lösenordsgenerering är tillgänglig från och med MySQL 8.0.18.

viktigt

under vissa omständigheter kanSET PASSWORD spelas in i serverloggar eller på klientsidan i en historikfil som~/.mysql_history, vilket innebär att cleartext-lösenord kan läsas av vem som helst som har läst informationen., För information om de förhållanden under vilka detta inträffar för serverloggarna och hur man styr det, se avsnitt 6.1.2.3, ”lösenord och loggning”. För liknande information om klientsidan loggning, se avsnitt 4.5.1.3, ”MySQL Client Logging”.,p> SET PASSWORD kan användas med eller utan en FOR klausul som uttryckligen namnger ett användarkonto:

  • med en FOR user anger uttalandet lösenordet för det namngivna kontot, vilket måste finnas:

    SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
  • utan FOR user anger satsen lösenordet för den aktuella användaren:

    SET PASSWORD = 'auth_string';

    alla klienter som ansluter till servern med ett nonanonymous-konto kan ändra lösenordet för det kontot., (I synnerhet kan du ändra ditt eget lösenord.) För att se vilket konto servern autentiserade dig som, åberopa funktionen CURRENT_USER():

    SELECT CURRENT_USER();

om en FOR user ges, använder kontonamnet det format som beskrivs i avsnitt 6.2.4, ”specificera kontonamn”. Till exempel:

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

värdnamnet del av kontonamnet, om utelämnas, standardvärden till '%'.,

SET PASSWORD tolkar strängen som en cleartext-sträng, skickar den till autentiseringsinsticksprogrammet som är associerat med kontot och lagrar resultatet som returneras av insticksprogrammet i kontoraden i systemtabellen mysql.user. (Insticksprogrammet ges möjlighet att hash värdet i krypteringsformatet det förväntar sig. Insticksprogrammet kan använda värdet som angivet, i vilket fall ingen hash inträffar.,)

ställa in lösenordet för ett namngivet konto (med enFOR klausul) kräverUPDATE privilegium för systemschematmysql. Att ställa in lösenordet för dig själv (för ett nonanonymous-konto utan FOR – klausul) kräver inga särskilda privilegier.,

uttalanden som ändrar sekundära lösenord kräver dessa privilegier:

  • behörighetenAPPLICATION_PASSWORD_ADMIN måste använda klausulenRETAIN CURRENT PASSWORD förSET PASSWORD uttalanden som gäller för ditt eget konto. Privilegiet krävs för att manipulera ditt eget sekundära lösenord eftersom de flesta användare behöver bara ett lösenord.,

  • om ett konto ska tillåtas att manipulera sekundära lösenord för alla konton ska det beviljas behörigheten CREATE USER snarare än APPLICATION_PASSWORD_ADMIN.

När systemvariabeln read_onlyär aktiverad, kräver SET PASSWORDbehörigheten CONNECTION_ADMIN(eller den föråldrade SUPER – behörigheten), förutom andra privilegier som krävs.

För ytterligare information om inställning av lösenord och autentiseringsinsticksprogram, se avsnitt 6.2.,14, ”tilldela kontolösenord” och avsnitt 6.2.17, ”Pluggable Authentication”.

Share

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *