Lors de l’utilisation de Docker et plus précisément avec Mariadb sous docker-compose, j’ai eu besoin de créer un utilisateur et une table. Voici le procédé.

Dans notre répertoire de travail, on lance docker avec la commande ‘docker-compose up’ puis on se connecte au container en utilisant:

docker exec -it <NOM CONTAINER> /bin/sh

Le prompt s’est transformé en # , on est dans le container. Maintenant on tape:

mysql -p

On saisit le mot de passe de root. Le prompt a changé en ‘MariaDB [(none)]>’. Nous allons ajouter un nouvel utilisateur.

On sélectionne la base de données mysql qui contient les configurations des BDD:

use mysql;

Et on entre la commande pour créer un nouvel utilisateur.

create user 'user' identified by 'password';

Maintenant que le nouvel utilisateur est ajouté, on lui donne des droits. Ici je n’ai donné à l’utilisateur que les droits de consultation, d’insertion, de modification et de suppression sur une seule base de données, celle que j’instancie dans le docker-compose.yml.

Dans un premier temps, je supprime tous les droits qui sont associés à l’utilisateur. Puis j’ajoute les nouveaux droits:

revoke all privileges, grant option from 'user'@'%';
grant select, insert, update, delete on `my_database`.* to `user`@`%`;

Changeons de base données pour créer une table. (Cette table est juste une table de test que j’ai remplie avec des données totalement fausses.)

# changement de BDD
use my_database;

# Création de la table
create table utilisateur
(
id int not null auto_increment primary key,
nom varchar (50) ,
prenom varchar (50),
date_naissance date,
pays varchar (50),
ville varchar (50),
cp int (5)
)
;

Pour ajouter de nouvelles lignes dans la table on peut utiliser l’utilisateur précédemment ajouté, ce qui permet de vérifier si les droits sont corrects:

insert into utilisateur
(nom, prenom, date_naissance, pays, ville, cp)
values
('NOM', 'PRENOM', 'AAAA-MM-JJ', 'PAYS', 'VILLE', '12345');

On saisit ainsi quelques tuples que l’on peut ensuite supprimer ou modifier, toujours dans le but de vérifier les droits de l’utilisateur.

Catégories : Docker