SGBD PostgreSQL PostgreSQL est un SGBD (système de gestion de base de données). Un outil libre permettant de gérer les bases de données. Il comporte psql une interface en ligne de commande afin de pouvoir saisir les requêtes SQL. Il faut savoir qu’une base de données constitue une entité capable de stocker des données modélisant des objets du monde réel. Ici, on stocke les données dans un schéma contenant des tables, procédures stockées, vues etc… Installation Lors de mon premier TP, j'ai installé le paquet postgresql sur un serveur : ubuntu serveur sur la machine virtuelle VirtualBox à l’aide de la commande suivante : ➡ sudo apt-get install postgresql Après l’installation, on a par défaut un super-utilisateur nommé postgres. Pour me connecter, j’ai eu recours aux commandes suivantes : ➡ sudo -i -u postgres ➡ psql Une fois connecté en mode administrateur, le serveur offre la possibilité d’utiliser les commandes SQL telles que : \h pour obtenir de l'aide sur les commandes SQL ; \? pour obtenir de l'aide sur les commandes Postgresql ; ou encore \l pour afficher la liste des bases de données ; \d <table> afficher les tables de la base courante ; \c pour se connecter à une base de données ; \du pour afficher la liste des utilisateurs ; \q pour quitter. Utilisateurs et base de données Par la suite, j’ai créé un utilisateur nommé toto : ➡ CREATE USER toto; Je lui ai par ailleurs, attribué le droit de créer une base de données avec la commande : ➡ ALTER ROLE test WITH CREATEDB ; De plus, j’ai pu créer une base de données nommée test portant le même nom que l’utilisateur : ➡ CREATE DATABASE test OWNER test ; Et enfin, je lui ai attribué un mot de passe avec la commande suivante : ➡ ALTER USER test WITH ENCRYPTED PASSWORD 'password' ; Lukombo Christopher - BTS2 SLAM 1 sur 3 Ensuite, pour se connecter à une machine distance, il est nécessaire de récupérer l’adresse ip de la machine virtuelle sous Linux à l’aide de la commande ifconfig, puis il faut saisir : ➡ psql -h nom_hote test toto; L’option -h suivi de l’hôte permet de préciser l’hôte sur qui, on désire se connecter, suivi du nom de la base de données puis du nom de l’utilisateur. Il faut noter, que grâce à ça, que l’on peut se connecter soit sur la machine virtuelle ou à distance. Gestion Avec le SGBD, on peut créer des groupes pour leur attribuer certains droits : ➡ CREATE GROUP gradmin; — permet de créer un groupe gradin ➡ ALTER GROUP gruti ADD USER Toto; — cette commande permet d’ajouter des utilisateurs dans le groupe Pour afficher les groupes présents sur la base de données, on peut effectuer un select sur la table en question exemple : ➡ SELECT * FROM pg_group; D’autre part lors de la création d’une base de données, il est nécessaire d’attribuer certains privilèges aux utilisateurs afin qu’ils puissent effectuer certaines requêtes SQL. Il est possible de réaliser cela avec la commande suivante : ➡ GRANT SELECT,INSERT,DELETE ON carte_mere TO Toto; Ici l’utilisateur Toto aura le droit de faire une sélection, d’insérer ou voir même supprimer les données. Afin de vérifier si tous les droits ont été accordés, on peut le faire avec \z. Lukombo Christopher - BTS2 SLAM 2 sur 3 De plus, si l’on souhaite mettre à jour une table dans la base de données, on peut utiliser la commande ALTER TABLE accompagnée de différentes options exemple : ➡ ALTER TABLE ordinateur ADD marque_ordi varchar(20); Le SGBD permet aussi de créer des vues. Une vue peut se définir comme une table virtuelle d’une requête SQL. Elle est créée logiquement à l’aide des requêtes SELECT et donc elle ne stocke pas les données que la requête contient. Voici un exemple : ➡ CREATE VIEW vueordinateur AS SELECT * FROM ordinateur WHERE prix_total > 390; Il faut savoir également pour qu’un utilisateur puisse accéder à la vue qu’il faut lui donner le droit SELECT sur la vue, par exemple avec la commande suivante : ➡ GRANT SELECT ON vueordinateur TO Toto; Autrement, le SGBD affichera un message d’erreur comme quoi l’accès lui a été refusé. Bien sur, si on a plus besoin de notre vue, on peut la supprimer avec la commande : ➡ DROP VIEW vueordinateur; En outre, le SGBD permet aussi de créer des schémas. Exemple. ➡ CREATE SCHEMA schema_toto; Il peut être fort utile de créer un schéma car si on créé une table sans spécifier le schéma tous va sur le schéma public, et donc tous se mélangent. Créer un schéma permet de séparer toutes les bases de données que l’on a créé. Voici un exemple de création d’une table en spécifiant le schéma : ➡ CREATE TABLE schema_toto.test( chaine VARCHAR(30) ) ; Enfin, pour toutes informations complémentaires, veuillez consulter la documentation officielle de postgresql à l’adresse suivante : ➡ http://docs.postgresql.fr/9.5/ Lukombo Christopher - BTS2 SLAM 3 sur 3