Cette requête a créé un utilisateur 'sdz'@'localhost', et lui a donné tous les droits sur la base de données elevage.
Stockage des utilisateurs et privilèges
Toutes ces informations sont stockées dans la base de données mysql.
Les utilisateurs sont stockés dans la table user, avec leurs privilèges globaux (c'est-à-dire valables au niveau du serveur, sur
toutes les bases de données). La base mysql possède par ailleurs quatre tables permettant de stocker les privilèges des
utilisateurs à différents niveaux.
db : privilèges au niveau des bases de données.
tables_priv : privilèges au niveau des tables.
columns_priv : privilèges au niveau des colonnes.
proc_priv : privilèges au niveau des routines (procédures et fonctions stockées).
Modifications
Il est tout à fait possible d'ajouter, modifier et supprimer des utilisateurs en utilisant des requêtes INSERT, UPDATE ou DELETE
directement sur la table mysql.user. De même pour leurs privilèges, avec les tables mysql.db, mysql.tables_priv,
mysql.columns_priv et mysql.procs_priv.
Cependant, en général, on utilise plutôt des commandes dédiées à cet usage. Ainsi, pas besoin de se soucier de la structure de
ces tables, et le risque d'erreur est moins grand. Ce sont ces commandes que nous allons décortiquer dans la suite de ce chapitre.
Tout comme on peut préciser la table à laquelle appartient une colonne en préfixant le nom de la colonne par le nom de
la table : nom_table.nom_colonne, il est possible de préciser à quelle base de données appartient une table :
nom_bdd.nom_table, voire même préciser à la fois la table et la base de données dans laquelle se trouve une colonne :
nom_bdd.nom_table.nom_colonne.
Création, modification et suppression des utilisateurs
Création et suppression
On l'a vu, il est possible de créer un utilisateur en lui donnant directement des privilèges, grâce à la commande GRANT.
Cependant, il existe des commandes dédiées uniquement à la manipulation des utilisateurs. Ce sont ces commandes que nous
allons voir maintenant. Nous reparlerons de GRANT plus tard.
Syntaxe
Voici les requêtes à utiliser pour créer et supprimer un utilisateur :
Code : SQL
-- Création
CREATE USER 'login'@'hote' [IDENTIFIED BY 'mot_de_passe'];
-- Suppression
DROP USER 'login'@'hote';
Utilisateur
L'utilisateur est donc défini par deux éléments :
son login ;
l'hôte à partir duquel il se connecte.
Login
Le login est un simple identifiant. Vous pouvez le choisir comme vous voulez. Il n'est pas obligatoire de l'entourer de guillemets,
sauf s'il contient des caractères spéciaux comme - ou @. C'est cependant conseillé.
Partie 7 : Gestion des utilisateurs et configuration du serveur
382/414
www.openclassrooms.com
Stockage des utilisateurs et privilèges
Toutes ces informations sont stockées dans la base de données mysql.
Les utilisateurs sont stockés dans la table user, avec leurs privilèges globaux (c'est-à-dire valables au niveau du serveur, sur
toutes les bases de données). La base mysql possède par ailleurs quatre tables permettant de stocker les privilèges des
utilisateurs à différents niveaux.
db : privilèges au niveau des bases de données.
tables_priv : privilèges au niveau des tables.
columns_priv : privilèges au niveau des colonnes.
proc_priv : privilèges au niveau des routines (procédures et fonctions stockées).
Modifications
Il est tout à fait possible d'ajouter, modifier et supprimer des utilisateurs en utilisant des requêtes INSERT, UPDATE ou DELETE
directement sur la table mysql.user. De même pour leurs privilèges, avec les tables mysql.db, mysql.tables_priv,
mysql.columns_priv et mysql.procs_priv.
Cependant, en général, on utilise plutôt des commandes dédiées à cet usage. Ainsi, pas besoin de se soucier de la structure de
ces tables, et le risque d'erreur est moins grand. Ce sont ces commandes que nous allons décortiquer dans la suite de ce chapitre.
Tout comme on peut préciser la table à laquelle appartient une colonne en préfixant le nom de la colonne par le nom de
la table : nom_table.nom_colonne, il est possible de préciser à quelle base de données appartient une table :
nom_bdd.nom_table, voire même préciser à la fois la table et la base de données dans laquelle se trouve une colonne :
nom_bdd.nom_table.nom_colonne.
Création, modification et suppression des utilisateurs
Création et suppression
On l'a vu, il est possible de créer un utilisateur en lui donnant directement des privilèges, grâce à la commande GRANT.
Cependant, il existe des commandes dédiées uniquement à la manipulation des utilisateurs. Ce sont ces commandes que nous
allons voir maintenant. Nous reparlerons de GRANT plus tard.
Syntaxe
Voici les requêtes à utiliser pour créer et supprimer un utilisateur :
Code : SQL
-- Création
CREATE USER 'login'@'hote' [IDENTIFIED BY 'mot_de_passe'];
-- Suppression
DROP USER 'login'@'hote';
Utilisateur
L'utilisateur est donc défini par deux éléments :
son login ;
l'hôte à partir duquel il se connecte.
Login
Le login est un simple identifiant. Vous pouvez le choisir comme vous voulez. Il n'est pas obligatoire de l'entourer de guillemets,
sauf s'il contient des caractères spéciaux comme - ou @. C'est cependant conseillé.
Partie 7 : Gestion des utilisateurs et configuration du serveur
382/414
www.openclassrooms.com
