13.7.1.10 ASETA SALASANA Lausunto
SET PASSWORD lausuma määrittää salasanan MySQL-käyttäjätili. Salasana voidaan joko erikseen määritellä lausekkeessa tai satunnaisesti luoda MySQL. Ilmoitus voi sisältää myös salasana-todentaminen lauseke, joka määrittää tilisi nykyinen salasana on vaihdettava, ja lauseke, joka hallinnoi, onko tili on toissijainen salasana., ' ja auth_string'' jokainen edustaa suojaamattomana (salaamaton) salasana.current_auth_string'
sen Sijaan käyttää SET PASSWORD määrittää salasanoja, ALTER USER on ensisijainen lausunnon huomioon muutokset, mukaan lukien määrittämällä salasanoja., Esimerkiksi:
ALTER USER user IDENTIFIED BY 'auth_string';
Lausekkeita, satunnaisen salasanan sukupolvi, salasana todentaminen, ja toissijainen salasanoja koskevat vain tilejä, jotka käyttävät authentication plugin, joka tallentaa valtakirjojen sisäisesti MySQL. Tileille, jotka käyttävät liitännäistä, joka suorittaa tunnistautumisen MySQL: n ulkopuolista valtakirjajärjestelmää vastaan, salasanojen hallintaa on käsiteltävä ulkoisesti myös kyseistä järjestelmää vastaan. Lisätietoja sisäisistä tunnuksista on kohdassa 6.2.15, ”salasanojen hallinta”.,
REPLACE ' – lausekkeen, suorittaa salasana todentaminen ja on saatavilla MySQL: 8.0.13. Jos annettu:current_auth_string'
-
REPLACEmäärittää tilisi nykyinen salasana on vaihdettava, koska suojaamattomana (salaamaton) merkkijono. -
– lauseke on annettava, jos salasana muutokset huomioon ovat tarpeen määrittää nykyisen salasanan, kun on tarkistettu, että käyttäjä yrittää tehdä muutos todella tietää nykyinen salasana.,
-
– lauseke on valinnainen, jos salasanan vaihto tilin voi mutta ei tarvitse määritä nykyinen salasana.
-
lausunto epäonnistuu, jos lauseke on annettu, mutta ei vastaa nykyistä salasanaa, vaikka lauseke on valinnainen.
-
REPLACEvoidaan määrittää vain, kun vaihdat tilin salasanan nykyinen käyttäjä.
lisätietoja salasanalla määrittämällä nykyinen salasana, ks. Kohta 6.2.15, ”Salasana Hallinta”.,
RETAIN CURRENT PASSWORD lauseke toteuttaa dual-salasana ominaisuus ja on saatavilla MySQL 8.0.14. Jos annettu:
-
RETAIN CURRENT PASSWORDsäilyttää tilin nykyinen salasana kuin sen toissijainen salasana, joka korvaa kaikki nykyiset toissijainen salasana. Uudesta salasanasta tulee ensisijainen salasana, mutta asiakkaat voivat käyttää tiliä yhteyden muodostamiseen palvelimelle joko ensisijaisella tai toissijaisella salasanalla., (Poikkeus: Jos uusi salasana on määriteltySET PASSWORDlausunto on tyhjä, toissijainen salasana on tyhjä, vaikkaRETAIN CURRENT PASSWORDannetaan.) -
Jos määrität
RETAIN CURRENT PASSWORDtilin, joka on tyhjä ensisijainen salasana, lausunto epäonnistuu. -
Jos tili on toissijainen salasana ja voit muuttaa sen ensisijainen salasana täsmentämättä
RETAIN CURRENT PASSWORDtoissijainen salasana pysyy ennallaan.
lisätietoja käyttö dual salasanat, ks. Kohta 6.2.,15, ”Password Management”.
SET PASSWORD luvat nämä auth_option syntaksien:
-
= 'auth_string'Määrittää, että tili annetaan selväkielinen salasana.
-
TO RANDOMMäärittää tilin salasanan satunnaisesti MySQL. Selvitys myös palaa suojaamattomana salasana tulos asettaa, jotta se on käyttäjän saatavilla tai sovelluksen suorittamista julkilausuman.,
lisätietoja tulos set ja ominaisuudet satunnaisesti salasanoja, nähdä Satunnaisen Salasanan Sukupolvi.
Random password generation on saatavilla MySQL: stä 8.0.18.
joissakin olosuhteissa, SET PASSWORD voidaan tallentaa palvelimen lokit tai asiakkaan puolella historian tiedosto, kuten ~/.mysql_history, mikä tarkoittaa, että suojaamattomana salasanat voidaan lukea kuka tahansa ottaa lukuoikeus tietoihin., Lisätietoja olosuhteet, joissa tämä tapahtuu, palvelimen lokit, ja miten hallita sitä, ks. Kohta 6.1.2.3, ”Salasanat ja Kirjautumalla”. Samanlaisia tietoja asiakaspuolen kirjautumisesta on kohdassa 4.5.1.3, ”MySQL Client loging”.,p> SET PASSWORD voidaan käyttää kanssa tai ilman FOR lausekkeen, joka nimenomaan nimet käyttäjätili:
-
Jossa
FOR– lauseke, lauseke asettaa salasanan nimetylle tilille, joka on olemassa:userSET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; -
ilman
FOR– lauseke, lauseke asettaa salasana nykyinen käyttäjä:userSET PASSWORD = 'auth_string';mitä Tahansa asiakas, joka muodostaa yhteyden palvelimeen käyttämällä nonanonymous-tilin voi muuttaa salasanan tilin., (Erityisesti, voit vaihtaa oman salasanan.) Voit tarkistaa tilin, johon palvelin todentaa sinua niin, vedota
CURRENT_USER()tehtävä:SELECT CURRENT_USER();
– Jos FOR – lauseke on annettu, tilin nimi käyttää muodossa kuvattu Kohdassa 6.2.4 ”sen Määrittäminen tilien Nimet”. Esimerkiksi: user
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string';
isännän nimi osa tilin nimi, jos se jätetään pois, oletuksena '%'.,
SET PASSWORD tulkitsee merkkijonon suojaamattomana string, kulkee sen authentication plugin liittyvä tili, ja tallentaa tuloksen palasi plugin tilille rivi mysql.user järjestelmä-taulukko. (Plugin annetaan mahdollisuus hash-arvo osaksi salaus muodossa se odottaa. Liitännäinen voi käyttää arvoa määritettynä, jolloin ei tapahdu hashing.,)
salasanan Asettaminen nimeltään huomioon (jossa FOR lauseke) vaatii UPDATE etuoikeus mysql järjestelmä-skeema. Salasanan asettaminen itse (varten nonanonymous-tilin, jossa ei ole FOR lauseke) ei vaadi erityisiä oikeuksia.,
Lausunnot, jotka muuttavat toisen asteen salasanat vaatia näitä oikeuksia:
-
APPLICATION_PASSWORD_ADMINetuoikeus on käytettäväRETAIN CURRENT PASSWORDlausekeSET PASSWORDlausunnot, jotka koskevat oman tilin. Etuoikeus vaaditaan manipuloimaan omaa toissijaista salasanaa, koska useimmat käyttäjät tarvitsevat vain yhden salasanan., -
Jos tili on sallittua manipuloida toissijainen salasanoja kaikki tilit, se olisi myönnettävä
CREATE USERetuoikeuden sijaanAPPLICATION_PASSWORD_ADMIN.
Kun read_only järjestelmä-muuttuja on käytössä, SET PASSWORD vaatii CONNECTION_ADMIN etuoikeus (tai vanhentunut SUPER etuoikeus), lisäksi kaikki muut tarvittavat oikeudet.
lisätietoja salasanojen asettaminen ja todennus plugins, ks. Kohta 6.2.,14, ”Assigning Account Passwords”, ja kohta 6.2.17, ”Pluggable Authentication”.