Utilisateurs

Créer un utilisateur

CREATE USER username
    [IDENTIFIED BY "password"]
    [options]

NB Un utilisateur tout juste créé ne possède aucune permission.

Username

username est la combinaison du nom utilisateur et de la machine source autorisée ('user'@'host')
Quelques exemples de combinaisons :

User Host Permissible Connections
‘fred’ ‘h1.example.net’ fred, se connectant à partir de h1.example.net
’’ ‘h1.example.net’ N’importe quel utilisateur, se connectant à partir de h1.example.net
‘fred’ ’%’ fred, se connectant à partir de n’importe quel hôte
’’ ’%’ N’importe quel utilisateur, se connectant à partir de n’importe quel hôte
‘fred’ ’%.example.net’ fred, se connectant à partir de n’importe quel hôte du domaine example.net
‘fred’ ‘x.example.%’ fred, se connectant à partir de x.example.net ou x.example.com, x.example.edu, etc
‘fred’ ‘198.51.100.177’ fred, se connectant à partir de l’adresse IP 198.51.100.177
‘fred’ ‘198.51.100.%’ fred, se connectant à partir de n’importe quel hôte dans le réseau 198.51.100
‘fred’ ‘198.51.100.0/255.255.255.0’ Identique à l’exemple précédent

Contraintes sur les noms

Les noms d’utilisateur (user) sont limités à 32 caractères sous MySQL.
Cette longueur peut être réduite selon l’OS utilisé — par exemple les noms d’utilisateur Unix sont souvent limités à 8 caractères.

Certains utilisateurs sont réservés :

Options

Différentes options peuvent être ajoutées, par exemple:

Voir doc MySQL CREATE USER pour la description des options.

Exemple

CREATE USER 'david'@'198.51.100.0/255.255.255.0';

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';

CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank'
         WITH MAX_QUERIES_PER_HOUR 20
              MAX_UPDATES_PER_HOUR 10
              MAX_CONNECTIONS_PER_HOUR 5
              MAX_USER_CONNECTIONS 2;

Modification

Même principe qu’à la création

Définition:

ALTER USER [IF EXISTS] username
    [IDENTIFIED BY "password"]
    [options]

Exemple:

ALTER USER 'jeffrey'@'localhost' PASSWORD EXPIRE;

Doc MySQL ALTER USER


Mettre à jour le mot de passe

Définition:

SET PASSWORD FOR username = hash

Exemple:

SET PASSWORD FOR 'abe'@'host_name' = PASSWORD('eagle');

Renommer

Définition:

RENAME USER username TO newname

Exemple:

RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1';

Afficher les détails

Définition:

SHOW CREATE USER username

Exemple:

SHOW CREATE USER 'tech'@'localhost' 

/* CREATE USER 'tech'@'localhost'
    IDENTIFIED WITH 'mysql_native_password' AS '*CAA7104F46B7680BA7AED696E4DE0F33F2225A1B'
    REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK */

Supprimer

Définition:

DROP USER [IF EXISTS] username

Exemple:

DROP USER 'jeffrey'@'localhost';