Table des matières
ToggleDonner l’accès à un utilisateur distant
Avant de donner des permissions à un utilisateur distant à la base de donnée, il faut tout d’abord lui crée un accès et faire en sorte qu’il puisse se connecter. Les étapes de cela sont les suivantes :
- Création d’un utilisateur :
- Etre en root
- mysql
- CREATE USER ‘new_user’@’localhost’ IDENTIFIED BY ‘password’;
quit nano /etc/mysql/mysql.conf.d/mysqld.cnf et commentez la ligne bind-adress
- Connexion d’un utilisateur :
- mysql -h « ipMachine ou localhost » -u « user » -p
- une demande de mot de passe vous sera demandé
gérer les permissions d'un utilisateur
On peut désormais donner les permissions que l’on souhaite à l’utilisateur cible sur notre base de donnée.
- Donner toutes les permissions
- en root
- mysql
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES; --> Permet de save les changements de permissions
- en root
- Donner des permissions spécifiques UPDATE par exemple
- en root
- mysql
GRANT UPDATE ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES; --> Permet de save les changements de permissions
- en root
D’autres permissions existent. Celle par défaut est USAGE mais on peut retrouver DELETE, DROP, INSERT, ALTER ….
On peut également supprimer une ou toutes les permissions ( avec le mot clé ALL ) d’un utilisateur avec le mot clé REVOKE de cette manière :
REVOKE UPDATE ON
database_name
FROM user;
Naviguer dans mysql dans un prompt
Il est important de savoir l’essentiel des commandes à taper afin de pouvoir naviguer dans une base de donner via un terminal de commande. En voici des démonstrations concrètes en partant du principe que vous aillez touts les droits nécessaires :
Le droit CREATE ( GRANT CREATE ) est nécessaire pour effectuer les prochaines commandes
Le droit USAGE ( GRANT USAGE ) ( par défaut ) est nécessaire pour effectuer les prochaines commandes
CREATE DATABASE example_db;
SHOW DATABASES;
Cette commande va nous permettre de consulter l'entièreté des bases de données existantes sur votre machine. Par conséquent nous pouvons très vite vérifier si la base de donnée que l'on a crée un peu plus tôt a tout simplement... Bien était crée
USE example_db;
Voici un avant / après de ce qu’affichera votre prompt après avoir sélectionné la base de donnée concernée
Les droits cités précédemment sont requis pour effectuer les prochaines commandes
Le droit SELECT ( GRANT SELECT ) est nécessaire pour effectuer les prochaines commandes
Le droit DELETE ( GRANT DELETE ) est nécessaire pour effectuer les prochaines commandes
Après avoir sélectionné une base de données, nous allons tout d’abord lui créer une table. Voici un exemple avec une commande créant une table user avec quelques valeurs indispensables à cet effet :
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100),
registration_date DATE
);
DESCRIBE example_db; ( droit SELECT )
Cette commande vous permettra d’afficher des tables présentes dans la base de données
En donnant le nom d’une table en paramètre de cette fonction, on peut voir le contenu d’une table spécifique
DESCRIBE example_db.users; ( droit SELECT )
Cette commande vous permettra d’afficher des tables présentes dans la base de données
( droit INSERT )
INSERT INTO users (user_id, username, email, registration_date ) VALUES ( 1, ‘john_doe’, ‘john.doe@example.com’, ‘2023-12-04’ );
Cette commande va insérer un user dans la table users avec pour identifiant 1, un pseudonyme « john_doe » etc… On fait la commande SELECT * FROM users; afin de voir le contenu de la table :
( droit DELETE )
DELETE FROM users WHERE user_id = 1;
Cette commande va prendre l’utilisateur à l’identifiant 1 et le supprimer de la base de données.
On refait la commande SELECT * FROM users; afin de vérifier si la donnée a bien été supprimé.