Pour créer un utilisateur :
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
Sinon, pour se connecter depuis n'importe quel host, avec le caractère générique %
:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'user_password';
Supprimer les privilèges d'un compte d'utilisateur :
SHOW GRANTS FOR 'database_user'@'localhost';
Les privilèges les plus couramment utilisés sont :
Accorder des privilèges spécifiques à un compte d'utilisateur, vous pouvez utiliser la syntaxe suivante :
GRANT permission1, permission2 ON database_name.table_name TO 'database_user'@'localhost';
Accordez tous les privilèges à un compte d'utilisateur sur une table spécifique à partir d'une base de données :
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
Accordez tous les privilèges à un compte d'utilisateur sur une base de données spécifique :
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
Accordez tous les privilèges à un compte d'utilisateur sur toutes les bases de données :
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
Accordez les privilèges à un compte d'utilisateur sur la base MYSQL (pour supervision par exemple) :
GRANT USAGE ON mysql.* TO 'monitoring'@'%' IDENTIFIED BY 'supersecret';
Il faut ensuite mettre à jour les privilèges dans la base :
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'database_user'@'localhost';
mysql> SELECT * from user where User="root"G
*************************** 1. row ***************************
Host: localhost
User: root
[...]
plugin: auth_socket
[...]
Modifier la façon (plugin) de se connecter à un compte :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';