tutoriel PostgreSQL.pages

publicité
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
Téléchargement