Mysql astuces

Comment voir tout les utilisateurs mysql ?

Pour simplement voir la liste des utilisateurs :

SELECT user FROM mysql.user;

Pour avoir la liste des utilisateurs ainsi que l’hôte qui leurs est associé:

SELECT user,host FROM mysql.user;

Comment voir les privilèges d’un utilisateur particulier ?

SHOW GRANTS FOR 'nom_utilisateur'@'localhost';

Comment voir les privilèges de l’utilisateur courant?

SHOW GRANTS FOR CURRENT_USER;

Comment accorder le privilège PROCESS à un utilisateur?

GRANT PROCESS, SELECT ON *.* TO 'nom_utilisateur'@'localhost';

Remarque: il n’est pas possible d’accorder le privilège PROCESS pour une DB particulière sinon l’erreur suivante est renvoyée:

ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

Comment créer une nouvelle DB ?

CREATE DATABASE nom_DB;

Remarque: un bonne pratique consiste à donner un nom de DB suffixé d’une chaîne aléatoire assez longue. Par exemple ‘ma_DB’ deviendrait ‘ma_DB_ert582rezt4569dffg’. De cette manière il est beaucoup plus difficile pour un hacker de deviner le nom de vos DB.

Création d’un nouvel utilisateur et lui accorder l’accès à une DB

CREATE USER 'nom_utilisateur'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER, REFERENCES ON nom_DB.* TO 'nom_utilisateur'@'localhost';

Comment voir la taille de toutes les DB ?

SELECT table_schema "DB Name",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM information_schema.tables 
GROUP BY table_schema;

Remarque: Cette commande peut durer un certain temps dépendant du nombre de DB présentes ainsi que le nombre de tables