12/12/2024

Base de données

Base de données

Personnaliser le terminal MySQL

I. Présentation Dans ce tutoriel, nous allons apprendre à personnaliser le prompt (terminal) présent sur le serveur MySQL de base lorsque nous l’utilisation en CLI (Ligne de commande). Le terminal de base CLI MySQL est en effet assez rudimentaire, il ne fournis aucune information mis à part le fait que nous sommes bien connecté au serveur MySQL : Nous pourrions en effet vouloir avoir des informations supplémentaires comme la date, l’utilisateur avec lequel nous sommes connecté, le serveur, etc. II. Procédure pour un changement temporaire Il est en effet possible sur ce terminal MySQL d’afficher des informations beaucoup plus intéressantes, on peut par exemple afficher le nom de l’utilisateur connecté et le nom du serveur comme suivant : Lorsque nous sommes connecté à une session CLI MySQL, il faut pour avoir ce terminal saisir la commande suivante : \R \u@\h > La déclaration du changement d’apparence du prompt se fait avec « \R », les valeurs qui suivent sont soit des caractères

Lire cet article
Base de données

Changer l’emplacement des bases de données MySQL

I. Présentation Par défaut, les bases de données (en tant que fichier) sont stockées dans « /var/lib/mysql/ » sous Linux. Pour des questions d’organisation, de sécurité ou de place, il est peut être intéressant de changer l’emplacement de ces bases de données vers un autre dossier/ chemin. Nous allons voir dans ce tutoriel que cela est possible directement dans la configuration de MySQL. II. Repérer où sont les bases de données Dans un premier temps, nous allons voir où sont situées nos bases de données selon la configuration de notre serveur MySQL. On se rend pour cela dans le fichier « /etc/mysql/my.cnf » : On trouvera alors le champ « datadir » qui pointe par défaut vers « /var/lib/mysql ». Afin de vérifier cette information, nous allons aller dans ce dossier pour voir les bases de données présentes et surtout leurs permissions : ls -al /var/lib/mysql Nous aurons alors un résultat de ce type : Ici, une base de données est représentées par un dossier (comme « mysql » ou

Lire cet article
Base de données

Créer, modifier ou supprimer un utilisateur avec la console SQL

I. Présentation Par défaut, on se connecte à une base de données avec l’utilisateur « Root » qui dispose de tous les privilèges, ce qui peut être un trou de sécurité important si vous vous faites pirater votre serveur. Fort heureusement, il est possible de créer plusieurs utilisateurs à partir de l’interface PhpMyAdmin, mais pas seulement. En effet, grâce à la console MySQL il est possible de gérer les utilisateurs c’est-à-dire d’en créer, de les modifier et de les supprimer, de manière simple et efficace. C’est ce que nous allons voir dans ce tutoriel. II. Informations sur le serveur et les utilisateurs Serveur : localhost Serveur web : WAMP Utilisateur : root Utilisateur à créer : neoflow, flo, test et admin III. Exécutez la console Avec une Invite de commandes, se positionner dans le répertoire contenant « mysql.exe » : cd « c:\wamp\bin\mysql\mysql5.1.36\bin »  Exécutez “mysql.exe” en utilisant des paramètres d’authentification SANS mot de passe : mysql.exe –u root  Exécutez “mysql.exe” en

Lire cet article
Base de données

La gestion des droits avec la console SQL

I. Présentation La gestion des droits est incontournable en matière de sécurité et pour définir les actions que l’utilisateur a le droit de faire et de ne pas faire. En SQL, il y a 4 droits/privilèges principaux que l’on peut attribuer à un utilisateur. Il peut avoir le droit de sélectionner des données dans des tables grâce au « SELECT », d’ajouter des valeurs dans les tables grâce à « INSERT » , de supprimer des données grâce à la commande « DELETE » et d’en mettre à jour en utilisant « UPDATE ». Il est possible de gérer ces droits via l’interface PHPMyAdmin mais aussi à partir de la console MySQL, c’est ce que nous allons dans ce tutoriel. II. Informations sur le serveur et la base de données utilisée Serveur : localhost (127.0.0.1) Serveur web : WAMP Base de données : neoflow_bdd Table : table1 Utilisateurs : root et invite III. Exécutez la console Avec une Invite de

Lire cet article
Base de données

Les alias en SQL

I. Présentation Les alias en SQL permettent de renommer une colonne c’est-à-dire le nom d’un champ indiqué dans le SELECT ou le nom d’une table indiquée dans le FROM. L’intérêt est de rendre plus lisible certaines requêtes et également d’améliorer l’exploitation du résultat en PHP. II. Syntaxe de l’alias pour un champ SELECT champ1 AS nom_alias FROM table1 ; Vous pouvez trouver les alias inutiles lorsque la requête est simple mais lorsque la requête devient conséquente et qu’elle contient de nombreux champs et tables, les alias deviennent incontournables pour s’y retrouver facilement. III. Syntaxe de l’alias pour une table SELECT champ1 FROM table1 AS nom_alias ; Le principe est le même pour faire un alias sur un champ ou sur une table, il suffit d’ajouter « AS » à la suite du nom du champ ou du nom de la table que l’on souhaite renommer. IV. L’impact d’un alias sur un champ Lorsque vous effectué un alias sur le nom

Lire cet article
Base de données

Réplication en temps réel Master/Slave MySQL

I. Présentation L’importance des serveurs de base de données et des bases de données elles même dans un système d’information est capital à son bon fonctionnement tant au niveau applicatif qu’au niveau des lectures par les serveurs web. C’est pourquoi il est important, dans une optique de sécurité et de disponibilité de l’information, d’avoir un processus à la fois de réplication des informations en temps réel mais aussi de tolérance de panne. Plus précisément, si un serveur dit « Master » tombe, un autre serveur « Slave » doit prendre le relais de manière immédiate et doit aussi avoir la dernière version des informations. Dans ce tutoriel, nous allons apprendre à mettre en place une réplication des bases de données en temps réel entre un serveur dit « Master » qui va recevoir les processus d’écriture et de lecture et un serveur « Slave » qui se chargera de se mettre à jour selon les modifications faites sur le « Master » afin qu’il dispose des dernières versions des informations

Lire cet article
Base de données

Conception d’un modèle physique des données

I. Présentation Le modèle physique des données (MPD) d’une base de données permet d’avoir une représentation graphique de la structure d’une base de données et ainsi de mieux comprendre les relations entre les différents tables. Il permet d’avoir un point de vue global sur l’ensemble de la base de données. Nous utiliserons la base de données suivantes pour créer notre MPD : T_Batiments(Bat_Num,Bat_Nom); T_Fabricants(F_Num,F_Nom); T_Switchs(Sw_Num,#Sw_NumFabr,#Sw_NumBat,Sw_Modele,Sw_NbPortsMb,Sw_NbPortsGb); Cette base de données a pour but de répertorier les switchs des fabricants pour ensuite les implémenter dans différents bâtiments. II. Comment créer un MPD  ? Dans un MPD, on crée les tables dont on met le nom dans l’en-tête, ensuite à l’intérieur de ces tables on répertorie l’ensemble des champs qu’elles contiennent. Dans un second temps, il faut souligner les champs qui sont des clés primaires et mettre un “#” devant les champs qui sont des clés étrangères. Pour les clés étrangères ce n’est pas tout, il faut montrer, à l’aide d’une flèche vers

Lire cet article
Base de données

Ajouter des valeurs dans une table

I. Présentation Nous allons voir dans ce tutoriel comment ajouter des valeurs dans une table grâce à des requêtes écrites dans un script SQL.Comme pour les tutoriels précédents la base de données présentée dans ce MPD est utilisée.  Voici pour rappel le MPD de cette base de données : II. Quel est la requête utilisée pour ajouter des valeurs dans une table ? La requête utilisée pour ajouter des valeurs dans une table est la requête INSERT INTO dont la structure est la suivante : INSERT INTO nom_table ( champ1 , champ2 ) VALUES (‘valeur1’,’valeur2’), (‘valeur3’,’valeur4’);  “Valeur1” et “Valeur3” correspondent à la valeur du “champ1”.  Chaque ligne représente un enregistrement différent.  Chaque ligne d’enregistrement doit se terminer par une virgule sauf pour la dernière qui doit se terminer par un point-virgule.  Si vous indiquez 2 champs dans le “INSERT INTO” vous devez obligatoirement ajouter une valeur pour ces 2 champs à chaque enregistrement.  Il doit y avoir une virgule entre

Lire cet article
Base de données

Faire des requêtes SQL dans une base de données

I. Présentation Dans ce tutoriel nous allons voir comment effectuer des requêtes SQL dans une base de données pour obtenir des informations sur ce que contiennent les tables qui la compose. Nous commencerons par des requêtes très simples pour ensuite les complexifier. Les requêtes seront effectuées dans la base de données utilisée pour l’ensemble des tutoriels SQL, c’est à dire celle-ci : lien. Vous trouverez le tutoriel pour créer le script SQL de cette BDD en cliquant sur ce lien, et le tutoriel pour ajouter des valeurs à cette base de données à cette adresse : lien Pour rappel, voici le MPD de cette base de données : Pour exécuter les requêtes accédez à PhpMyAdmin puis à gauche dans l’arborescence cliquez sur la base de données (dans notre cas « implementation_switchs ») et ensuite dans le menu cliquez sur « SQL ». II. Qu’elle est la structure de base d’une requête SQL ? SELECT champ1 , champ2 FROM table1 WHERE champ1 = 0  

Lire cet article
Base de données

Erreur MysQL : Table is marked as crashed and should be repaired

I. Présentation Il peut arriver que vous ayez à faire face à l’erreur « Table is marked as crashed and should be repaired » lors de la manipulation des tables MySQL. II. Pourquoi cette erreur Cette erreur et avertissement peut avoir plusieurs sources. Elle indique la table en question est corrompue et qu’elle doit être réparée. Cela peut être dû à un problème d’espace disque sur la partition où se situe la base de données, à un problème d’extinction de la base de données lors d’une lecture ou d’une écriture d’informations ou alors plus couramment à un problème physique sur le support de stockage, une extinction non prévue, etc .. III. Réparer une table corrompue Nous pouvons le faire grâce à PhpmyAdmin dans un premier temps. Il faut se rendre dans le PhpMyAdmin pour réparer la table (l’opération est aussi faisable en ligne de commande sur le serveur MySQL). On doit ensuite se loguer puis se rendre dans la base de données

Lire cet article
Base de données

Voir les droits utilisateur dans MySQL en ligne de commande 

I. Présentation Dans ce tutoriel, nous allons voir comment afficher les droits et permissions d’un utilisateur MySQL en ligne de commande. Le plus souvent, on utilise PhpMyAdmin pour gérer les droits utilisateurs mais il est aussi facile et rapide de le faire en ligne de commande (CLI) Nous allons ici utiliser la commande « show grants » qui sert à afficher les droits d’un utilisateur sur les bases d’un serveur. Il est important de savoir que pour utiliser cette commande, le minimum des droits requis est celui de faire un « select » sur la base de données « mysql » du serveur MySQL. II. Voir les utilisateurs disponibles Nous allons, dans un premier temps, regarder quels sont les utilisateurs présents sur notre serveur après s’être connecté en « root » en ligne de commande : select user,host from mysql.user; Nous aurons alors la liste des utilisateurs ainsi que les hôtes depuis lesquels ils peuvent se connecter. III. Voir nos bases de données Nous allons maintenant chercher à

Lire cet article
Base de données

Changer le nom de l’utilisateur root MySQL

I. Présentation Par défaut, MySQL créé, lors de son installation, un super-utilisateur nommé « root ». Cet utilisateur a tous les droits sur toutes les bases de données du serveur. Si un utilisateur doit être ciblé lors d’une attaque sur un service MySQL, c’est bien celui-ci. En effet, si on arrive à avoir les identifiants de cet utilisateur (login et mot de passe), on aura un accès total à toutes les bases de données. Dés le départ, un attaquant peut démarrer une attaque avec 50% des informations requises : le nom de l’utilisateur (« root »). Pour rendre plus difficile et plus lente la tâche d’un attaquant, nous allons modifier le nom de cet utilisateur pour que l’utilisateur « root » n’existe plus. Ainsi, en plus de devoir trouver un mot de passe, l’attaquant devra commencer par trouver l’identifiant du super-utilisateur de notre service MySQL. II. Voir les utilisateurs existants Nous allons commencer par vérifier quel utilisateur est présent sur notre service MySQL. On se connecte

Lire cet article
Base de données

Configurer le SSL pour sécuriser MySQL

I. Présentation Dans ce tutoriel, nous allons apprendre à configurer MySQL pour qu’il utilise le SSL afin de chiffrer les échanges avec ses clients. Il faut savoir que le chiffrement d’un flux par SSL alourdis en général les échanges par des traitements et des calculs supplémentaires (chiffrement / déchiffrement), c’est pourquoi le SSL n’est pas configuré par défaut dans MySQL. Il peut toutefois être dans certaines situations une solution non négligeable pour sécuriser les échanges. II. Permettre les connexions distantes Le besoin de sécuriser les échanges MySQL se fait naitre lorsque des serveurs ont besoins de communiquer fréquemment entre eux. Il faut donc déjà pour cela que notre serveur MySQL soit à l’écoute sur son interface externe. On va également s’assurer d’avoir au moins un utilisateur qui puisse se connecter à distance sur notre serveur dans notre base de données. On va pour cela se rendre en ligne de commande (de préférence en « root ») sur notre serveur MySQL afin d’effectuer

Lire cet article