syntaxis
SET PASSWORD = { PASSWORD('some password') | OLD_PASSWORD('some password') | 'encrypted password' }
Description
Het SET PASSWORD
statement wijst een wachtwoord toe aan een bestaande MariaDB-gebruikersaccount.
als het wachtwoord is opgegeven met behulp van de functie PASSWORD()
of OLD_PASSWORD()
, moet de letterlijke tekst van het wachtwoord worden opgegeven. Als het wachtwoord is opgegeven zonder een van beide functies te gebruiken, moet het wachtwoord de reeds versleutelde wachtwoordwaarde zijn zoals geretourneerd doorPASSWORD()
.,
OLD_PASSWORD()
dient alleen gebruikt te worden als uw MariaDB/MySQL clients zeer oud zijn (< 4.0.0).
zonder FOR
clausule, stelt deze instructie het wachtwoord in voor de huidige gebruiker. Elke client die verbinding heeft gemaakt met de server met behulp van een niet-anoniem account, kan het wachtwoord voor dat account wijzigen.
met een FOR
clausule, stelt deze instructie het wachtwoord in voor een specifieke account op de huidige server host., Alleen clients die de UPDATE
privilege hebben voor demysql
database kunnen dit doen. De gebruikerswaarde moet worden gegeven in user_name@host_name
formaat, waarbij user_name
en host_name
actief zijn zoals ze zijn vermeld in de kolommen gebruiker en Host van demysql.user
tabelinvoer.
het argument voor PASSWORD()
en het wachtwoord gegeven aan MariaDB clients kunnen van willekeurige lengte zijn.
authenticatie Plugin ondersteuning
MariaDB beginnend met 10.,4
in MariaDB 10.4 en hoger werkt SET PASSWORD
(met of zonder PASSWORD()
) voor accounts die zijn geverifieerd via een authenticatieplugin die wachtwoorden ondersteunt die zijn opgeslagen in de tabel mysql.global_priv
.
deed25519
,mysql_native_password
, enmysql_old_password
authenticatie plugins slaan wachtwoorden op in demysql.global_priv
tabel.,
Als u SET PASSWORD
uitvoert op een account dat authenticeert met een van deze authenticatieplug-ins die wachtwoorden opslaat in de mysql.global_priv
tabel, dan wordt de functie PASSWORD()
geëvalueerd door de specifieke authenticatieplug-in die door het account wordt gebruikt. De verificatieplugin hashes het wachtwoord met een methode die compatibel is met die specifieke verificatieplugin.,
deunix_socket
,named_pipe
,gssapi
, enpam
authenticatie plugins slaan geen wachtwoorden op in demysql.global_priv
tabel. Deze authenticatie plugins vertrouwen op andere methoden om de gebruiker te authenticeren.,
Als u probeert SET PASSWORD
uit te voeren op een account dat authenticeert met een van deze authenticatieplugins die geen wachtwoord opslaan in de mysql.global_priv
tabel, dan zal de MariaDB-Server een waarschuwing oproepen als volgt:
SET PASSWORD is ignored for users authenticating via unix_socket plugin
zie authenticatie van MariaDB 10.4 voor een overzicht van authenticatie wijzigingen in MariaDB 10.4.
MariaDB tot 10.3
in MariaDB 10.,3 en daarvoor werkt SET PASSWORD
(met of zonder PASSWORD()
) alleen voor accounts die zijn geverifieerd via mysql_native_password
of mysql_old_password
authenticatie plugins
Passwordless User Accounts
User accounts vereisen niet altijd wachtwoorden om in te loggen.
Deunix_socket
,named_pipe
engssapi
authenticatie plugins vereisen geen wachtwoord om de gebruiker te authenticeren.,
de pam
authenticatieplugin kan al dan niet een wachtwoord vereisen om de gebruiker te authenticeren, afhankelijk van de specifieke configuratie.
demysql_native_password
enmysql_old_password
authenticatie plugins vereisen wachtwoorden voor authenticatie, maar het wachtwoord kan leeg zijn. In dat geval is geen wachtwoord vereist.
Als u een wachtwoord opgeeft terwijl u probeert in te loggen op de server als een account dat geen wachtwoord vereist, dan zal de MariaDB-server het wachtwoord gewoon negeren.
MariaDB beginnend met 10.,4
in MariaDB 10.4 en hoger kan een gebruikersaccount worden gedefinieerd om meerdere authenticatie plugins te gebruiken in een specifieke volgorde van voorkeur. Dit specifieke scenario kan meer opvallen in deze versies, omdat een account kan worden geassocieerd met een aantal authenticatie plugins die een wachtwoord vereisen, en sommige die niet.
voorbeeld
bijvoorbeeld, als u een regel had met User andHost kolomwaarden van ‘bob
‘ en ‘%.loc.,gov
‘, u schrijft de verklaring als volgt:
SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');
Als u een wachtwoord voor een gebruiker wilt verwijderen, doet u:
SET PASSWORD FOR 'bob'@localhost = PASSWORD("");
zie ook
- Password Validation Plugins – Hiermee kunt u basiscriteria voor wachtwoorden instellen
ALTER USER
Geef een reactie