BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
LE SQL : LANGAGE DE CONTROLE DE DONNEES
Chaque utilisateur de base de données (comme Oracle ou SQL Server) dispose d’un nom et d’un mot de passe et
possède également des tables, des vues et des ressources qu’il a créés.
Le LCD(Langage de Contrôle de Données) consiste à définir des permissions au niveau de l’utilisateur d’une base de
données.
1. Gestion des utilisateurs
a. Créer un utilisateur
CREATE USER ‘Ivan’@‘localhost’ IDENTIFIED BY ‘ivpass’;
L’utilisateur ……………………….dont le mot de passe ………………………………….. est autorisé à se connecter sur la machine
locale.
L’utilisateur est défini par deux éléments :
• Son Login
• L’hôte : l’adresse à laquelle l’utilisateur va se connecter.
(Si l’utilisateur se connecte à partir de la machine sur laquelle le serveur MySQL se trouve, on peut utiliser
‘localhost’. Sinon, on utilise en général une adresse IP ou un nom de domaine.)
Exemple :
CREATE USER ‘basso’@‘192.168.12.%’ IDENTIFIED BY ‘bapass’;
Signifie que l’utilisateur ………………………..peut se connecter sur n’importe quel hôte dont l’adresse IP commence par
…………………………………………….
Remarques :
- Si on ne précise pas l’hôte, l’utilisateur sera autorisé à se connecter de n’importe
quel hôte.
- De même, il est possible de créer un utilisateur sans mot de passe
Application :
• Donnez la commande pour créer les utilisateurs admin identifié par le mot de passe « toto » et
visiteur sans mot de passe autorisées à se connecter sur tout hôte du domaine [Link]
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
b. Supprimer un utilisateur
BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
Pour supprimer un utilisateur, on utilise la commande DROP USER
Exemple : Supprimer l’utilisateur visiteur : ................................................................................................
On peut également supprimer plusieurs utilisateurs :
Exemple : Supprimer les utilisateurs ivan et basso
...................................................................................................................................................................
Remarques : Cette opération requière de posséder les droits suivants :
• CREATE USER (c’est le droit pour créer des utilisateurs, qui sert également à les supprimer).
• DELETE sur la base de données mysql.
2. La commande GRANT : accorder des privilèges
Lorsque l’on crée un utilisateur avec CREATE USER, celui-ci n’a au départ aucun privilège, aucun droit.
En SQL, avoir un privilège, c’est avoir l’autorisation d’effectuer une action sur un objet.
a. Donner un privilège à un utilisateur sur une table
Le script suivant donne le droit à visiteur d’exécuter la commande SELECT à la client de la base de données GESCOM.
...................................................................................................................................................................
...................................................................................................................................................................
b. Donner plusieurs privilèges à plusieurs utilisateurs sur plusieurs tables
GRANT SELECT, UPDATE, DELETE, INSERT
ON [Link], [Link]
To admin, visiteur ;
Quels droits donne ce script ?
...................................................................................................................................................................
...................................................................................................................................................................
...................................................................................................................................................................
c. Donner un privilège à un utilisateur sur toute une base de données
nom-base.* permet de désigner toutes les tables d’une base de données :
Exemple : GRANT SELECT on GESCOM.* to visiteur;
d. Donner tous les droits d’un coup.
Le script suivant donne tous les droits(sauf le droit d’accorder des droits) à « visiteur » sur les tables de la GESCOM :
GRANT ALL on GESCOM.* to visiteur;
BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
e. Donner un privilège à un utilisateur seulement sur certaines colonnes
Le script suivant donne tous les droits uniquement sur les colonnes NOM et ADRESSE de la table client.
GRANT SELECT(NOM,ADRESSE) on [Link] to visiteur;
f. Créer un utilisateur grâce à la commande GRANT
Lorsqu’on utilise le GRANT en désignant un utilisateur qui n’existe pas, celui-ci est créeé. On peut éventuellement
préciser son mot de passe.
GRANT SELECT
on GESCOM.*
to Nouvel_utilisateur
IDENTIFIED BY “password”;
Application 2:
Donnez la commande pour accorder le droit à tessiah d’afficher le contenu de la table [Link] et de
créer des index sur cette table(liste des droits en annexe)
...................................................................................................................................................................
...................................................................................................................................................................
Donnez à Edou les droits de lire et d’éditer(Ajouter, supprimer, modifier les données) à la table
[Link]
...................................................................................................................................................................
...................................................................................................................................................................
BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
g. Les privilèges particuliers
❖ ALL
Accoder le privilège ALL revient donc à accorder ....................................................................................
Exemple :
GRANT ALL on [Link] to ‘martine’@’localhost’ ;
❖ usage
A l’inverse de ALL, le privilège USAGE signifie ………………………………………………………………………………….
En fait, USAGE permet de modifier les caractéristiques d’un compte avec la commande GRANT, sans modifier les
privilèges du compte
Ex : modification du mot de passe de ‘yaba’@’localhost ‘ qui devient yb2019.
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
❖ Donner le privilège d’accorder des privilèges a d’autres utilisateurs
GRANT …………………
ON ………………….
To Admin
WITH GRANT OPTION
Ce script ...........................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
3. La commande REVOKE: retirer des privilèges
a. Retirer des privilèges
Le script suivant retire le droit de mise à jour sur la table client à l’utilisateur franck:
REVOKE UPDATE ON [Link] TO ‘FRANCK’;
b. Retirer des privilèges
Le script suivant retire tous les privilèges de la table client à l’utilisateur franck
REVOKE ALL ON [Link] TO ‘FRANCK’;
BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
c. Retirer le privilège d’accorder des privilèges
Le script suivant conserve les privilèges, mais retire le droit de les accorder à d’autres utilisateurs :
REVOKE GRANT OPTION on [Link] to ‘franck’;
ANNEXE: Liste des droits utilisé en BTS
BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
Gestion des comptes utilisateurs
Un utilisateur (user) est identifié par MySQL par son nom et celui de la machine à partir de laquelle il se connecte.
Cela fait, il pourra accéder à différents objets (tables, vues, séquences, index, procédures, etc.) d’une ou de plusieurs
bases sous réserve d’avoir reçu un certain nombre de privilèges.
Classification :
Les types d’utilisateurs, leurs fonctions et leur nombre peuvent varier d’une base à une autre. Néanmoins, pour
chaque base de données en activité, on peut classifier les utilisateurs de la manière suivante :
Le DBA (DataBase Administrator). Il en existe au moins un. Une petite base peut n’avoir qu’un seul administrateur. Une base
importante peut en regrouper plusieurs qui se partagent les tâches suivantes :
• Installation et mise à jour de la base et outils éventuels ;
• Gestion de l’espace disque et des espaces pour les données ;
• Gestion des utilisateurs et de leurs objets ;
• Optimisation des performances
• Sauvegarde restauration et archivages ;
• Contact avec le support technique.
L’administrateur réseau (qui peut être le DBA) il se charge de la configuration des couches client pour les accès
distants :
Les développeurs qui conçoivent et mettent à jour la base. Ils peuvent aussi agir sur leurs objets (création et
modification des tables, index, séquences, etc.). Ils transmettent au DBA leurs demandes spécifiques (stockage,
optimisation, sécurité).
Les administrateurs d’application qui gèrent les données manipulées par la ou les applications. Pour les petites et
les moyennes bases, le DBA joue ce rôle.
Les utilisateurs qui se connectent et interagissent avec la base à travers les applications ou à l’aide d’outils
(interrogations pour la génération de rapports, ajouts, modifications ou suppressions d’enregistrements).
Tous seront des utilisateurs (au sens MySQL)
BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
SAUVEGARDE, RESTAURATION ET ARCHIVAGE D’UN
BASE DE DONNEES
Les administrateurs de bases de données créent des plans et des procédures de sauvegarde et de récupération et
s'assurent que les étapes nécessaires sont suivies.
Les sauvegardes sont un processus coûteux et long. Le DBA peut avoir à persuader la direction de prendre les
précautions nécessaires pour préserver les données.
Les administrateurs de base de données ou d'autres membres du personnel peuvent créer les sauvegardes, mais il
incombe à l'administrateur de base de données de s'assurer que tout est fait dans les délais prévus.
En cas de panne ou de perte de données, le DBA utilisera les sauvegardes existantes pour restaurer les informations
perdues dans le système. L'administrateur de base de données doit être préparé à toute éventualité, car différents
types de défaillances peuvent nécessiter des stratégies de restauration.
SAUVEGARDE MYSQL
Il y a différents types de sauvegarde mysql.
On peut sauvegarder toutes les bases de données, une seule base de données ou encore certaines tables d’une ou
de plusieurs bases.
Pour sauvegarder toutes les bases de données on utilise la commande suivante :
mysqldump -user=mon_user -p -A > fichier_destination.sql
Pour sauvegarder une base de données précise :
mysqldump –u mon_user -p nom_de_la_base > fichier_destination.sql
Pour sauvegarder plusieurs bases de données :
mysqldump –u mon_user -p –databases db1 db2 dbn > fichier_destination.sql
Pour sauvegarder une table précise :
mysqldump –u mon_user -p –-databases dbname –-tables table1 > fichier_destination.sql
Pour sauvegarder plusieurs tables
mysqldump –u mon_user -p –-databases dbname –-tables table1 … tablen > fichier_destination.sql
Pour tous ces types de sauvegarde mysql les fichiers générés sont en .sql. Cela dit on peut mettre l’extension que l’on
veut comme .txt par exemple. Ca n’a pas d’importance. Les fichiers sont lisibles en clair et contiennent toutes les
commandes SQL pour pouvoir faire une restauration mysql.
Cela dit les fichiers .sql sont volumineux. Pour gagner de la place, on va les compresser à la volée lors de la
sauvegarde.
BTS IG_DA Module : DAIGL ITO
BTS IRIS
BASE DE DONNÉES: LCD M. MBONGO Ivan
COMPRESSER LA SAUVEGARDE MYSQL
Pour compresser les données, nous allons utiliser gunzip après avoir invoqué mysqldump.
Cela donnera des commandes du type :
mysqldump < options mysqldump> | gzip > fichier_destination.[Link]
Exemple avec la commande de sauvegarde complète :
mysqldump –u mon_user -p -A | gzip > fichier_destination.[Link]
RESTAURATION MYSQL
Pour la restauration mysql on n’utilise plus la commande mysqldump. On utilise la commande mysql.
La commande mysql va aller lire un fichier puis le restaurer en fonction de son contenu et de ses instructions.
La restauration mysql peut se faire pour toutes les bases de données ou pour un base de données précise.
Exemple sans distinction de base de données :
mysql --user=mon_user --password=mon_password < fichier_source.sql
Autre exemple pour restaurer dans une base de données précise :
mysql --user=mon_user --password=mon_password nom_de_la_base <
fichier_source.sql