• Aucun résultat trouvé

Bases de données Gestion des utilisateurs

N/A
N/A
Protected

Academic year: 2022

Partager "Bases de données Gestion des utilisateurs"

Copied!
4
0
0

Texte intégral

(1)

BASES DE DONNÉES – Administration - Droits - Dictionnaire - page 1/4 - Bertrand LIAUDET

Bases de données Gestion des utilisateurs

Corrigé du TP Bertrand LIAUDET

Exercices

Connexion root@localhost

1. Ouvrez une console (cmd).

2. Ouvrez un client mysql « root » à partir de la console.

Mysql –u root

3. Afficher votre profil de connexion et votre identité effective.

Select current_user(), user() ;

4. Affichez les databases auxquelles vous avez accès.

Show databases

5. Affichez les droits de l’utilisateur connecté.

show grants

6. Affichez la liste de tous les utilisateurs.

Select host, user from mysql.user ;

7. Supprimez tous les utilisateurs sauf root@localhost.

Drop user nomUser@nomHote;

Attention : les utilisateurs installés par défaut dans les versions 5.7 et 8.0 ne doivent pas être supprimés.

Création root@’%’

8. Créer un utilisateur root pouvant se connecter de n’importe quelle machine (on utilisera

‘%’) avec pour mot de passe ‘root’

Create user root@’%’ identified by ‘root’

9. Donner tous les droits à cet utilisateur.

GRANT all privileges ON *.* TO root@’%’;

10. Affichez les droits de cet utilisateur

show grants for root@’%’;

11. Consultez les droits des utilisateurs dans l’interface graphique.

Connexion root@maMachine

12. Dans une console, affichez le nom de l’hôte de votre machine ainsi que son adresse IP

(2)

BASES DE DONNÉES – Administration - Droits - Dictionnaire - page 2/4 - Bertrand LIAUDET cmd /k ipconfig /all

13. Ouvrez un client mysql « root » en précisant le nom de l’hôte de votre machine

Mysql –u root –h maMachine Mysql –u root –h 10.0.0.55

14. Connectez-vous sur la machine de votre voisin

Mysql –u root –h laMachineDeMonVoisin

15. Afficher votre profil de connexion et votre identité effective.

Select current_user(), user() ;

16. Affichez les databases auxquelles vous avez accès.

Show databases

Création de toto@’%’

17. Vous êtes connecté root@maMachine. Créez un utilisateur « toto » qui puisse se connecter de n’importe quelle machine, sans mot de passe, avec la commande CREATE USER.

Create user toto@’%’;

18. Ouvrez un client mysql « toto »

Mysql –u toto

19. Affichez les databases ; affichez les droits de « toto ». Que constatez-vous ?

Show databases

On constate qu’on a accès qu’à information schéma.

Donnez des droits à toto@’%’

20. Vous êtes connecté root@maMachine. Donnez tous les droits sur la base « biblio » à

« toto ». Que constatez-vous ?

GRANT all privileges ON biblio.* TO toto@’%’;

On constate qu’on ne peut pas le faire : en effet, root@maMachine n’a pas reçu le « grant option ».

21. Vous êtes connecté root@localhost. Donnez tous les droits sur la base « biblio » à « toto ».

Que constatez-vous ?

GRANT all privileges ON biblio.* TO toto@’%’;

On constate que ça marche

22. Ouvrez un client mysql « toto »

Mysql –u toto

23. Affichez les droits de « toto ».

show grants

24. Affichez les databases de « toto ».

Show databases

25. Affichez les tables de la database « biblio » de « toto ».

Use biblio

Show tables biblio

Consultation du dictionnaire

26. Affichez le nombre de lignes des tables de la BD biblio à partir de la BD information_schema. On utilisera la table « tables ». L’attribut « table_rows » donne le

(3)

BASES DE DONNÉES – Administration - Droits - Dictionnaire - page 3/4 - Bertrand LIAUDET

nombre de ligne. L’attribut « table_schema » donne le nom de la BD. L’attribut

« table_name » donne le nom de la table.

Select table_schema, table_name, table_rows from information_schema.tables

where table_schema=’biblio’;

27. Affichez les attributs des tables de la BD biblio à partir de la BD information_schema. On utilisera la table « columns ».

28. Créer la procédure qui simule le « desc ».

Mot de passe

29. Vous êtes connecté root@localhost. Donnez un mot de passe à l’utisateur « toto » (on peut utiliser le « set password for»)

Solution propre, depuis la 5.7 :

ALTER USER toto@’%’ identified by ‘motdepasse’;

Versions 5.5 et 5.6 : utilisation d’une fonction PASSWORD

Set password for toto@’%’ = PASSWORD(‘motdepasse’);

Versions 5.7 et 8.0

Set password for toto@’%’ = ‘motdepasse’;

Il n’y a plus de fonction PASSWORD

30. Vérifier le mot de passe en vous connectant en tant que « toto ».

Utilisateurs avec des droits spécifiques

31. Dans la BD biblio, créez une vue « dispo » avec les livres et leurs disponibilités. S’ils sont disponibles, on écrira « disponible », s’ils ne sont pas disponibles, on écrira « retour dans X jours », avec ou sans « s » à jour.

32. Créez deux utilisateurs : adhèrent et bibliothécaire pouvant se connecter de partout.

33. Donnez des droits de consultation de la vue « dispo » aux adhérents ; Vérifiez les droits des adhérents.

34. Donnez des droits de consultation de toutes les tables de la BD biblio aux bibliothécaires ainsi que des droits de consultation, d’insertion sur les tables des emprunts, et des adhérents ; Vérifiez les droits des adhérents.

35. Connectez-vous comme adhérent puis comme bibliothécaire et vérifiez les « select » possibles.

Connexion à distance

36. Essayer de vous connecter sur la machine de votre voisin : en tant que « adherent » et en tant que « bibliothécaire ».

37. Afficher votre profil de connexion et votre identité effective.

38. Affichez vos droits.

39. Affichez les databases auxquelles vous avez accès.

40. Affichez les tables auxquelles vous avez accès dans les databases.

41. Essayez de faire des consultations, du DML, du DDL.

(4)

BASES DE DONNÉES – Administration - Droits - Dictionnaire - page 4/4 - Bertrand LIAUDET

Vous avez perdu le mot de passe de root !

42. Vous avez perdu vos mots de passe ! Eteignez et redémarrer le serveur de façon à pouvoir vous reloguer. Quelles options devez-vous utiliser ?

mysqld --skip-grant-tables --skip-net-working

43. Connectez-vous à partir du serveur non protégé. Affichez l’identité et le profil de connexion. Que constatez-vous ?

mysql –uroot

Select current_user(), user() ;

Le user est root@’’, le current_user ‘’@’’ : n’importe qui peut se connecter et accède à tout ! 44. Changez le password de root.

UPDATE mysql.user

SET password = PASSWORD(‘ok’) WHERE User=’root’;

On peut constater que la commande « set password » n’est pas accessible en mode « skip- grant-table »

Références

Documents relatifs

Expliquer pourquoi la solution proposée ne permet pas cette communication entre les serveurs des sous-réseaux RESTAURATION et COMPTABILITÉ, et proposer, en les

Permet de saisir, modifier, et visualiser des données Les données d'un formulaire peuvent être:. Dépendantes d'une table ou

SQL> CREATE TABLE EMP ( empno NUMBER(4), ename

L’objectif de cette activité est de réaliser un module permettant de fusionner deux tables avec des descripteurs différents mais avec une clé d’identification

[r]

[r]

Créer alors une variable t able contenant l’ensemble des données des deux tables aux- quelles sont ajoutées, pour chaque ligne, les deux données des champs supplémentaires..

Exemple Considérons ce tableau de données (provenant par exemple d’un logiciel de tableur) : Prénom Date de naissance Couleur de yeux couleur préférée.. Andy 12/05/2001