Créée le, 19/06/2015

 Mise à jour le, 19/05/2019

Visiteurs N°  




Accueil
Nouveau Blog Nouveautés Moteur de Recherche Votre Caddie Pour Vos Achats Votre Espace Membre Vos Signets et Vos Jeux Préférés Page de Bienvenue Statique Site en Français Site en Anglais
Sommaires
Électronique Fondamentale Technologie Fondamentale Testez vos Connaissances Électronique Théorique Digitale Électronique Pratique Digitale Lexique Électronique Numérique Data book TTL Data book CMOS Dépannage TVC Mathématique
Micro-ordinateurs
Théorique des Micro-ordinateurs Testez vos Connaissances Pratique des Micro-ordinateurs Glossaires sur les Ordinateurs
Physique
La lumière Champ d'action Rayonnement Électromagnétique
Technologies
Classification des Résistances Identification des Résistances Classification des Condensateurs Identification des Condensateurs
Formulaires Mathématiques
Géométrie Physique 1. - Électronique 1. 2. - Électronique 1. 3. - Électrotechnique 1. 4. - Électromagnétisme
Accès à tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages N. B. M. - Tome I - 201 Pages E. T. M. - Tome I - 554 Pages Business à Domicile Ouvrages 34 pages gratuits Nos E-books Logiciel Géométrie Logiciel Composants Électroniques
Aperçu de tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages E. T. M. - Tome I - 554 Pages Logiciel Géométrie Logiciel Composants Électroniques
Nos Leçons aux Formats PDF
Électronique Fondamentale Technologie Fondamentale Électronique Théorique Digitale Électronique Pratique Digitale Théorique des Micro-ordinateurs Mathématiques
Informatique
Dépannage Win98 et WinXP et autres Dépannage PC Glossaire HTML et Programmes PHP et Programmes JavaScript (en cours de travaux) Création de plusieurs Sites
Forums
Forum Électronique et Infos Forum Électronique et Poésie
Divers et autres
Formulaire des pages perso News XML Statistiques CountUs Éditeur JavaScript Nos Partenaires et nos Liens Utiles Gestionnaire de Partenariat Nos Partenaires MyCircle Sondages 1er Livre d'Or 2ème livre d'Or

Signets :
  Leçons suivantes        Leçons précédentes     Bas de page
  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet


Conception de votre base de données Web (2ème partie) :



Créer votre base de données :


Dans cette leçon, nous reprendrons l'exemple de la librairie virtuelle de chez Jean-Pierre présentée à la leçon précédente. Voici le schéma de l'application de chez Jean-Pierre :

les_clients(client_ID, nom, adresse, ville)

les_commandes(commande_ID, client_ID, montant, date)

les_livres(ISBN, auteur, titre, prix)

les_articles_commandes(commande_ID, ISBN, quantitee)

les_commentaires_livres(ISBN, commentaires)

N'oubliez pas que les clés primaires sont soulignées en continu, et que les clés externes sont soulignées en pointillés.

Pour pouvoir continuer cette leçon, vous devez avoir accès à MySQL. Cela signifie normalement que :

  1. Vous avez effectué l'installation de base de MySQL sur votre serveur Web. Pour cela, il faut normalement :

  • Configurer votre EasyPHP ou autres serveurs, selon votre choix.

  • Exécuter mysql_install_db, si nécessaire et selon les serveurs vous concernant.

  • Définir le mot de passe root mais, ce n'est pas une obligation, uniquement pour votre sécurité.

  • Supprimer le cas échéant l'utilisateur anonymous.

  • Et enfin, démarrer le serveur MySQL et le configurer pour qu'il soit exécuté automatiquement.

Si vous avez bien fait tout cela, vous pouvez commencer ou continuer à lire cette leçon en toute tranquillité. Dans le cas contraire, recommencez l'installation de votre EasyPHP, afin que vous puissiez faire nos exemples.

Si, à n'importe quel moment dans ce deuxième chapitre, vous avez rencontré des problèmes, il se peut que la configuration de votre système MySQL soit en cause. Dans ce cas, vérifiez à nouveau pour vous assurer que votre configuration est correcte.

      2. Vous devez avoir accès à MySQL sur un ordinateur que vous n'administrez pas, comme un service d'hébergement Web, un             ordinateur de votre bureau, etc.

Dans ce cas, pour que vous puissiez utiliser les exemples ou créer votre propre base de données, votre administrateur doit configurer un utilisateur et une base de données, et vous fournir le nom d'utilisateur, le mot de passe, et le nom de la base de données qu'il a choisi.

Tous les exemples de cette leçon et les suivantes, ont été développés et testés à partir de la version 4 de MySQL et ultérieure. Certaines versions antérieures de MySQL possèdent moins de fonctionnalités. Il convient donc d'installer la version stable la plus récente lorsque vous configurez votre système. Vous pouvez changer la dernière version sur le site de MySQL, en cliquant ici

Création des bases de données et des utilisateurs :

Le système de base de données de MySQL peut supporter différentes bases de données. Généralement, il existe une base de données par application. Dans notre exemple de la librairie de chez Jean-Pierre, la base de données sera appelée books (en minuscule). ce qui signifie livres.

Nous mettons à votre disposition une capture d'une base de données pour celles ou pour ceux qui ne connaissent pas cette dernière, elle sera expliquée au fur et à mesure dans nos leçons quand cela sera nécessaire.


IMG_Serveur_MySQL.png

Création de la base de données :

Il s'agit de la partie la plus simple. Sur la ligne de commande de MySQL, saisissez la commande suivante :

    create database dbname ;


Creation_DB_Name.png

Il convient de substituer le nom de la base de données que vous souhaitez créer à dbname. Par exemple, pour chez Jean-Pierre, vous pouvez créer une base de données appelée dbname.

C'est tout. Vous devriez obtenir une réponse comme celle-ci :

    Query OK, 1 row affected (0.06 seconde) ce qui signifie : Requête OK, 1 ligne affectée en 0.06 seconde.

Cette réponse signifie que tout s'est bien passé. Si vous obtenez une autre réponse, assurez-vous que vous n'avez pas oublié de saisir le point-vigule à la fin de la ligne. Un point-virgule indique à MySQL que vous avez terminé de saisir votre commande, et qu'il doit l'exécuter.

Utilisateurs et privilèges :

Un système MySQL peut compter plusieurs utilisateurs. L'utilisateur root doit généralement servir uniquement pour l'administration du système, à cause de certains problèmes de sécurité. Pour chaque utilisateur qui doit avoir accès au système, vous devez définir un compte et un mot de passe. Ces derniers ne correspondent pas forcément aux noms d'utilisateurs ou aux mots de passe existant en dehors de MySQL (par exemple, les noms d'utilisateur et les mots de passe Unix ou NT). Ce principe est également valable pour le compte root. Il est généralement conseillé de choisir un mot de passe différent pour les comptes du système et pour les comptes de MySQL, et en particulier pour le compte root. Ce qui signifie root = racine.

Il n'est pas obligatoire de créer des mots de passe pour les utilisateurs, mais nous vous recommandons fortement de choisir un mot de passe pour tous les utilisateurs que vous créez.

Dans le cadre de la configuration d'une base de données Web, il est généralement intéressant de créer au moins un utilisateur par application Web.

Vous pouvez vous demander : "Et pourquoi cela ?" La réponse fait intervenir la notion de privilèges.

Introduction au système de privilèges de MySQL :

L'une des caractéristiques les plus intéressantes de MySQL est qu'il supporte un système évolué de privilèges.

Un "privilège" est le droit d'effectuer une action particulière sur un objet spécifique, en association avec un utilisateur particulier. Ce concept ressemble énormément aux droits d'accès des fichiers.

Lorsque vous créez un utilisateur dans MySQL, vous lui accordez un ensemble de privilèges pour spécifier ce qu'il peut faire et ne peut pas faire dans le système.

Principe de privilèges minimaux :

Ce principe peut être utilisé pour améliorer la sécurité de n'importe quel système informatique. Il s'agit d'un principe à la fois très simple et très important, que l'on oublie un peu trop souvent. Il peut être résumé de la manière suivante :

  • Un utilisateur (ou un processus) doit posséder le niveau de privilège le plus bas possible pour pouvoir effectuer correctement sa tâche.

Ce principe s'applique également à MySQL. Par exemple, pour exécuter des requêtes à partir du Web, un utilisateur n'a pas besoin de posséder tous les privilèges auxquels root a accès. Il convient par conséquent de créer un autre utilisateur qui possède uniquement les privilèges nécessaires pour accéder à la base de données que nous venons de créer (dbname).

Configuration des utilisateurs - la commande GRANT :

Les commandes GRANT et REVOKE sont utilisées pour fournir ou pour retirer des droits d'accès aux utilisateurs de MySQL, selon quatre niveaux de privilèges, qui sont les suivants :

Petite_Main.gif  global ;

Petite_Main.gif  database ;

Petite_Main.gif  table ;

Petite_Main.gif  column ;

Nous allons voir à quoi correspond chacun de ces niveaux.

La commande GRANT est utilisée pour créer des utilisateurs et pour leur fournir des privilèges. Voici le format général de la commande GRANT :

    GRANT privileges [columns]

    ON item

    TO user_name [IDENTIFIED BY 'password']

    [WITH GRANT OPTION]

Les clauses entre crochets sont optionnelles. Dans cette syntaxe, il faut modifier plusieurs mots clés.

Le premier, privileges, est une liste de privilèges séparés par des virgules. Ces privilèges doivent être choisis dans une liste prédéfinie de MySQL, que nous verrons dans la prochaine section de cette leçon.

Le mot clé columns est optionnel. Vous pouvez l'utiliser pour spécifier les privilèges de chaque colonne. Il peut correspondre au nom d'une seule colonne, ou à une liste de noms de colonnes séparés par des virgules.

Le mot clé item correspond à la base de données ou au tableau auquel les privilèges doivent être appliqués.

Vous pouvez modifier les privilèges de toutes les bases de données en spécifiant *.* à la place de item. C'est ce que l'on appelle une modification des privilèges "globaux". Vous pouvez aussi spécifier * si vous n'utilisez aucune base de données particulière.

Plus fréquemment, vous pouvez spécifier tous les tableaux d'une base de données grâce à dbname .*. que nous avons créé, un tableau particulier grâce à dbname.tablename, ou une colonne particulière avec dbname.tablename et un argument spécifique à la place de columns. Ces trois approches représentent les trois autres niveaux de privilèges disponibles : database, table et column, respectivement. Si vous utilisez une base de données spécifique lorsque vous exécutez cette commande, tablename sera interprété comme un tableau dans la base de données actuelle.

Le mot clé user_name doit correspondre au nom de l'utilisateur sous lequel vous souhaitez vous logger dans MySQL. N'oubliez pas que ce nom ne doit pas forcément correspondre à votre nom d'utilisateur sur votre système d'exploitation. Dans MySQL, user_name peut également correspondre à un nom d'hôte. Vous pouvez utiliser cette particularité pour différencier par exemple, Laura (qui sera interprété comme laura@localhost), et laura@autre-part.com. Cette particularité et très intéressante puisqu'il arrive souvent que des utilisateurs de différents domaines aient le même nom en local. Cette caractéristique améliore en outre la sécurité du système, puisque vous pouvez spécifier l'endroit à partir duquel les utilisateurs se connectent, et même les tableaux et les bases de données auxquels ils ont accès à partir d'un emplacement particulier.

Le mot clé password doit correspondre au mot de passe associé à l'utilisateur spécifié. Les règles générales pour choisir les mots de passe doivent toujours être respectées. Nous reviendrons un peu plus loin sur les problèmes de sécurité, mais, d'une manière générale, un mot de passe ne doit pas pouvoir être deviné facilement. Cela signifie qu'un mot de passe ne doit figurer dans aucun dictionnaire, et doit être différent du nom de l'utilisateur. Idéalement, il doit contenir des lettres majuscules, des lettres minuscules, et des symboles.

L'option WITH GRANT OPTION, lorsqu'elle est spécifiée, permet à l'utilisateur de sélectionner et de définir ses propres privilèges.

Les privilèges sont enregistrés dans quatre tableaux systèmes, dans la base de données appelé mysql. Ces quatre tableaux sont appelés mysql.user, mysql.db, mysql.tables_priv et mysql.columns_priv. Ils correspondent directement aux niveaux de privilèges que nous avons déjà mentionnés. Si vous ne souhaitez pas passer par GRANT, vous pouvez modifier directement ces tableaux. Nous y reviendrons, en détail dans les prochaines leçons qui seront tirées et extraites de nos catalogues concernant les paramètrages des privilèges.

Types et niveaux de privilèges :

Il existe trois principaux types de privilèges dans MySQL : les privilèges des utilisateurs classiques, les privilèges des administrateurs et quelques privilèges particuliers.

N'importe quel utilisateur peut obtenir ces privilèges, mais il est généralement plus intéressant d'affecter les privilèges des administrateurs uniquement aux administrateurs, selon le principe des privilèges minimaux.

Les privilèges doivent être accordés aux utilisateurs uniquement pour les bases de données et les tableaux qu'ils devront utiliser. La base de données mysql ne doit être accessible que pour les administrateurs. En effet, il s'agit de l'endroit où tous les utilisateurs, tous les mots de passe, etc. sont enregistrés (nous reviendrons sur cette base de données dans les prochaines leçons suivantes).

Les privilèges des utilisateurs classiques sont directement associés à des types spécifiques de commandes SQL, et définissent les droits d'exécution de ces commandes par les utilisateurs. Nous reviendrons sur ces commandes SQL au chapitre suivant. Pour l'instant, nous avons fourni une description conceptuelle de ces commandes. Ces privilèges sont présentés dans le tableau 1 ci-dessous. La deuxième colonne spécifie les objets auxquels chaque privilège peut être appliqué.


Tableau 1. - Privilèges des utilisateurs :
Privilèges Applicable à Description
SELECT Tableaux, colonnes Permet aux utilisateurs de sélectionner des lignes (des enregistrements) dans des tableaux.
INSERT Tableaux, colonnes Permet aux utilisateurs d'insérer de nouvelles lignes dans des tableaux.
UPDATE Tableaux, colonnes Permet aux utilisateurs de modifier les valeurs existantes dans les lignes des tableaux.
DELETE Tableaux Permet aux utilisateurs de supprimer des lignes existantes dans des tableaux.
INDEX Tableaux Permet aux utilisateurs de créer et de supprimer des indices dans des tableaux particuliers.
ALTER Tableaux Permet aux utilisateurs de modifier la structure de tableaux existants, par exemple, en ajoutant des colonnes, en renommant des colonnes ou des tableaux, ou en modifiant le type des données de certaines colonnes.
CREATE Base de données, tableaux Permet aux utilisateurs de créer de nouvelles bases de données ou de nouveaux tableaux. Si un tableau ou une base de données particuliers sont spécifiés dans la commande GRANT, ce tableau ou cette base de données ne peuvent être créés que grâce au privilège CREATE, ce qui signifie qu'il faut utiliser au préalable DROP.
DROP Base de données, tableaux Permet aux utilisateurs de supprimer des bases de données ou des tableaux.

La plupart des privilèges des utilisateurs classiques sont relativement inoffensifs, en terme de sécurité. Le privilège ALTER peut être utilisé pour contourner les privilèges systèmes, en renommant des tableaux, mais, il est souvent très important pour les utilisateurs. La sécurité est toujours un compromis entre la sûreté et la simplicité d'utilisation. Vous devez donc prendre vos propres décisions quant à ALTER, Mais il faut savoir que ce privilège est souvent accordé aux utilisateurs classiques.

En plus des privilèges présentés dans le Tableau 1, il existe un privilège appelé REFERENCES, qui n'est pas encore utilisé, et un privilège GRANT, qui est accordé avec WITH GRANT OPTION plutôt qu'avec la liste privileges.

Le Tableau 2 présente les privilèges réservés aux administrateurs.

Tableau 2. - Privilèges des administrateurs :
Privilèges Description
RELOAD Permet à un administrateur de recharger les tableaux de privilèges, et de réinitialiser les privilèges, les hôtes, les journaux et les tableaux.
SHUTDOWN Permet à un administrateur d'arrêter le serveur MySQL.
PROCESS Permet à un administrateur de visualiser les processus du serveur et de les tuer.
FILE Permet d'échanger des données entre les tableaux et des fichiers.

Il est possible de fournir ces privilèges à des utilisateurs classiques, mais, dans ce cas, il faut être très prudent. En principe, les utilisateurs n'ont pas besoin d'utiliser les privilèges RELOAD, SHUTDOWN ou PROCESS.

Le privilège FILE est un peu différent. Il est intéressant pour les utilisateurs puisqu'il permet de charger des données à partir de simples fichiers, ce qui peut leur faire gagner beaucoup de temps, en leur évitant d'avoir à saisir leurs données dans leurs bases de données. Cependant, le mécanisme de chargement de fichiers peut être utilisé pour charger n'importe quel fichier visible par le serveur MySQL, y compris des bases de données appartenant à d'autres utilisateurs, et éventuellement des fichiers de mot de passe. Ce privilège ne doit donc être accordé qu'avec beaucoup de précautions, et vous pouvez préférer charger les données des utilisateurs à leur place.

Il existe également deux privilèges particuliers, qui sont présentés dans le Tableau 3.


Tableau 3. - Privilèges particuliers :
Privilèges Description
ALL Accorde tous les privilèges présentés dans les Tableaux 1 et 2. Vous pouvez également écrire ALL PRIVILEGES à la place de ALL.
USAGE N'accorde aucun privilège. Cela permet de créer un utilisateur et de ne l'autoriser qu'à ce logger, sans pouvoir faire autre chose. Généralement, il s'agit simplement d'une première étape utilisée avant d'ajouter d'autres privilèges.

La commande REVOKE :

L'inverse de GRANT est REVOKE. Cette commande est utilisée pour supprimer les privilèges des utilisateurs. Sa syntaxe ressemble beaucoup à celle de GRANT :

    REVOKE privileges [(columns)]

    ON item

    FROM user_name

Si vous avez spécifié la clause WITH GRANT OPTION, vous pouvez la supprimer ainsi :

    REVOKE GRANT OPTION

    ON item

    FROM user_name

Exemples d'utilisation de GRANT et de REVOKE :

Pour configurer le compte d'un administrateur, vous pouvez saisir la commande suivante :

    GRANT ALL

    ON *

    TO jennifer identified by '123456'

    WITH GRANT OPTION ;

Voici un aperçu d'une capture :


Privileges_Jennifer_Administratrice.png

Cette commande fournit tous les privilèges sur toutes les bases de données à une utilisatrice appelée Jennifer, avec le mot de passe 123456, et elle permet de transmettre ces privilèges.

Nous mettons un aperçu d'une capture des privilèges concernant l'utilisatrice Jennifer afin que vous puissiez vous rendre compte, à noter, vous pouvez cocher ou décocher les cases de la base de données d'un utilisateur selon les privilèges que vous attribuez.


Capture_Jennifer_Privileges.png

Il est fort possible que vous ne souhaitez pas réellement définir cette utilisatrice dans votre système, c'est pourquoi que vous pouvez la supprimer immédiatement :

    REVOKE ALL

    ON *

    FROM jennifer ;

Nous mettons également une capture concernant la suppression des privilèges de Jennifer.


Privileges_Jennifer_Supprimer.png

Voyons maintenant comment configurer le compte d'un utilisateur classique, sans aucun privilège :

    GRANT USAGE

    ON books . *

    TO jennifer identified by 'magique123' ;


Privileges_Classique_pour_Jennifer.png

Après avoir discuté un peu avec Jennifer, et après avoir appris ce qu'elle souhaite réellement faire, nous pouvons lui fournir les privilèges correspondants :

    GRANT select, insert, update, delete, index, alter, create, drop

    ON books . *

    TO jennifer ;


Privileges_Jennifer_ayant_acces_a_Books.png

Vous remarquerez que nous n'avons pas besoin de spécifier le mot de passe de Jennifer pour effectuer cette opération.

Si l'on se rend compte que Jennifer abuse de ses privilèges, on peut choisir de les réduire :

    REVOKE alter, create, drop

    ON books . *

    FROM jennifer ;


Privileges_Reduits_de_Jennifer.png

Et pour terminer, lorsqu'elle n'a plus besoin d'utiliser la base de données, on peut supprimer tous ces droits :

    REVOKE ALL

    ON books . *

    FROM jennifer ;

Voici un aperçu ci-après :


Privileges_Supprimes_de_Jennifer.png

Nous terminons ainsi ce deuxième chapitre (2ème partie de cette leçon) et nous verrons dans le prochain, comment Configurer un Utilisateur pour le Web, Utiliser la bonne base de données, sans oublier la Création des Tableaux de la Base de Données.










Nombre de pages vues, à partir de cette date : le 23 MAI 2019

compteur de visite

    




Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web. 

Version du site : 10. 5. 14 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 19 MAI 2019.   

Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en MAI 2019.