Vous êtes sur la page 1sur 14

ENSEIGNANT Claver GUERET

TP Administration de la base de donnée Mysql sous linux

Il faut d’abord télécharger Putty afin de se connecter au serveur distance par SSH qui est une
connexion sécuriser que le telnet

Une fois cliquer sur Putty nous avons l’interface ci-dessous :

Cliquer sur open pour se connecter a distance en mode ssh

TP Administration BD 1
ENSEIGNANT Claver GUERET

Une fois sur cette interface je saisie root comme login et password le mot de passe admin du
serveur.
Une fois sur cette interface je vérifie si le service mysql est belle et bien demarrer
En tapant la commande service mysqld status ou /etc/init.d/mysqld status

Je peux maintenant me connecter a mysql avec le compte par défaut qui est root et sans mot
de passe

TP Administration BD 2
ENSEIGNANT Claver GUERET

La sécurité d'une base de données passe également par une gestion réfléchie des privilèges des
utilisateurs. Le langage SQL propose deux mots clés permettant de gérer les privilèges :
GRANT et REVOKE. Nous allons apprendre à les utiliser ici, avec les spécificités de
MySQL.

Tout d'abord, il est important de rappeler la règle d'or pour une gestion sécurisée des droits
utilisateurs : un minimum de droits = un maximum de sécurité. En d'autres termes, il est
complètement inutile d'attribuer plus de privilèges que ceux nécessaires pour réaliser les
opérations prévues. Tout privilège excessif peut donner lieu à une faille de sécurité.

Ainsi, il est évident que, dans les applications qui utilisent la base de données, l'utilisateur root
(ou tout autre administrateur) ne doit pas être utilisé. Il faut donc créer un ou plusieurs
utilisateurs sous MySQL qui n'auront que les droits correspondants aux opérations que permet
l'application.

La commande GRANT permet d'attribuer des privilèges. La plupart des privilèges peuvent
concerner une colonne, une table entière ou une base de données. Certains peuvent même être
globaux, c'est-à-dire valides pour toutes les tables et toutes les bases de données. Des
privilèges s'appliquent également aux routines : procédures stockées, fonctions et triggers.

Créons tout d'abord une base de données TP contenant deux tables pour nos tests :

TP Administration BD 3
ENSEIGNANT Claver GUERET

Je liste les bases qui existent dans ce SGBD.

Je vais maintenant me connecter à ma base TP

TP Administration BD 4
ENSEIGNANT Claver GUERET

Je suis maintenant connecter je liste les tables qui existe dans cette bases ;

Il existe aucune table pour le moment je vais créer mes deux tables précitées ci-dessus

TP Administration BD 5
ENSEIGNANT Claver GUERET

Je viens de créer mes deux tables je les liste par la commande show tables

Il faut décrire nos tables créer en utilisant la commande describe

TP Administration BD 6
ENSEIGNANT Claver GUERET

Nous allons insérer des données afin d’effectuer nos test.

Vérifiant si les données sont bien insérés

TP Administration BD 7
ENSEIGNANT Claver GUERET

Nous allons créer nos utilisateurs et leurs attribuer des droits.


Notre but ici c’est d’administrer les BD sous Mysql l’administration dépend de la version du
Mysql. Nous allons créer trois Utilisateur Claver, Rodrigue, teddy
Utilisateur claver en lui attribuant le droit de faire la sélection dans la table testGrant2 le
champ code :
GRANT SELECT (code) ON tp.testGrant2 TO 'claver'@'%' IDENTIFIED BY 'claver';

TP Administration BD 8
ENSEIGNANT Claver GUERET

Connectons-nous maintenant à MySQL avec le compte claver et testons quelques requêtes :

>mysql -u claver -p

Ensuite en test la sélection sur le champ autorisé

TP Administration BD 9
ENSEIGNANT Claver GUERET

Utilisateur teddy en lui attribuant le droit d’nsertion dans les tables testGrant1 code :
GRANT INSERT ON tp.testGrant2 TO 'teddy'@'localhost' IDENTIFIED BY 'teddy';

Nous lui donnons le droit d'INSERT dans les deux tables.

mysql> SELECT * FROM testGrant1;


ERROR 1142 (42000): SELECT command denied to user 'teddy'@'localhost' for table
'testGrant1'
mysql> delete from testGrant2;
ERROR 1142 (42000): DELETE command denied to user 'teddy'@'localhost' for table
'testGrant2'

TP Administration BD 10
ENSEIGNANT Claver GUERET

Créant l’utilisateur Rodrigue en lui attribuant le droit INSERTION, SUPPRIMER, MISE à


JOUR, SELECTION dans les tables testGrant1 code : GRANT SELECT, INSERT, UPDATE

Grâce aux commandes GRANT et REVOKE, vous pouvez donc gérer les privilèges de vos
utilisateurs. Une autre commande intéressante à connaître est SHOW GRANTS qui permet à
un utilisateur de voir les privilèges qui lui ont été accordés. En tant qu'administrateur, vous
pouvez également utiliser cette commande pour lister les privilèges octroyés à un utilisateur
spécifique :

TP Administration BD 11
ENSEIGNANT Claver GUERET

mysql>SHOW GRANTS FOR 'claver'@'localhost';

NB : pour créer un utilisateur sous Mysql il y’a deux cas selon la version
Creation1:
mysql> GRANT USAGE ON * . * TO 'claver'@'localhost' IDENTIFIED BY 'azerty';
uniquement la base TP
mysql> GRANT USAGE ON TP. * TO 'claver'@'localhost' IDENTIFIED BY 'azerty';
Creation2:
mysql> CREATE USER claver@localhost IDENTIFIED BY 'azerty';
Pour afficher la version d’un soft sous linux on utilise la commande : rpm -qa |grep nomsoft
Ex : rpm -qa |grep mysql

GRANT ALL PRIVILEGES ON *.* TO claver@localhost WITH GRANT OPTION;


Uniquement labase TP
GRANT ALL PRIVILEGES ON TP.* TO claver@localhost WITH GRANT OPTION;

Cette commande ci-dessus attribut tous les droits a l’utilisateur claver.


Celles ci-dessous retire tous les droits à l’utilisateur
mysql> REVOKE ALL PRIVILEGES ON * . * FROM 'claver'@'localhost';

TP Administration BD 12
ENSEIGNANT Claver GUERET

mysql> REVOKE GRANT OPTION ON * . * FROM 'claver'@'localhost';

Pour supprimer cet utilisateur dans le SGBD il faut faire :


DELETE FROM `user` WHERE CONVERT( User USING utf8 ) = CONVERT(
'claver' USING utf8 ) AND CONVERT( Host USING utf8 ) = CONVERT( 'localhost'
USING utf8 ) ;

DELETE FROM `db` WHERE CONVERT( User USING utf8 ) = CONVERT( 'claver'
USING utf8 ) AND CONVERT( Host USING utf8 ) = CONVERT( 'localhost' USING
utf8 ) ;

DELETE FROM `tables_priv` WHERE CONVERT( User USING utf8 ) = CONVERT(


'claver' USING utf8 ) AND CONVERT( Host USING utf8 ) = CONVERT( 'localhost'
USING utf8 ) ;

DELETE FROM `columns_priv` WHERE CONVERT( User USING utf8 ) =


CONVERT( 'claver' USING utf8 ) AND CONVERT( Host USING utf8 ) = CONVERT(
'localhost' USING utf8 ) ;

TP Administration BD 13
ENSEIGNANT Claver GUERET

Exemple

GRANT USAGE ON identification.* TO 'idverif'@'localhost' IDENTIFIED BY 'idverif123';


GRANT USAGE ON identification.* TO 'idverif'@'%' IDENTIFIED BY 'idverif123';
GRANT ALL PRIVILEGES ON identification.* TO idverif@localhost WITH GRANT
OPTION;
GRANT ALL PRIVILEGES ON identification.* TO 'idverif'@'%' WITH GRANT OPTION;

TP Administration BD 14

Vous aimerez peut-être aussi