PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Zeus DeltaGeekBlog : Découverte de PostgreSQL

vendredi 14 décembre 2012 à 20:06

Prés-requis :

Afin de (mieux) comprendre ce tutoriel, les connaissances suivantes sont importantes :

  1. GNU/Linux : Base
  2. Langage SQL : Intermédiaire
  3. Langage HTML/PHP : Base de la base ;)
  4. Modélisation de donnée (Merise/UML) : Base

Qu’est-ce que PostgreSQL ?

PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO).

Un « moteur » SGBDR permet d’exécuter des bases de données afin de stocker les données de façon relationnelle.

Les bases de données sont utilisées tous les jours par des milliards d’utilisateurs. En effet, sans le savoir vous utilisez quotidiennement et par différents moyens des bases de données : votre banque, vos sites Web d’achat en ligne préférés, les sites de réseaux sociaux, ce site…

En réalité presque 100% des sites et application Web stocke en partie vos données dans des bases de données relationnelle.

Parmi les différentes solution de SGBDR, une est particulièrement interressant à mes yeux : PostgreSQL.

Open-source et gratuit c’est l’un des SGBDR les plus performants.

 

J’invite les anglophones, à lire la liste des fonctionnalités sur Wikipedia.

 

Qui utilise PostgreSQL ?

McAfee, Trend Micro, McAfee, Trend Micro, Skype, Météo France, leboncoin.fr utilisent PostgreSQL…

Pour info, Météo France gère une base de 3,5To :)

Allez voir les témoignages sur le site officiel !

 

Comment l’installer ?

Sur GNU/Linux c’est toujours aussi simple :

Distribution CentOS/Red-Hat/Fedora:

# yum install postgresql-server

 

Distribution Debian/Ubuntu :

# apt-get install postgresql

 

Vous pouvez même l’installer sur un serveur Windows !

 

Remarque : la distribution GNU/Linux utilisée durant ce tutoriel est : CentOS 6.3 x86_64.

Vous pouvez également installer les sources depuis le site officiel

 

Je souhaite que le serveur postgresql se lance à chaque démarrage du serveur :

# chkconfig postgresql on

 

Je vérifie si la commande est bien passée :

# chkconfig postgresql --list
 postgresql 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt

Le contraire m’aurait étonné ;) . Pour info, le « runlevel » par défaut sur CentOS est 3.

 

Pour vérifier votre « niveau d’exécution » :

# runlevel
 N 3

 

Après l’installation, il est indispensable d’initialiser le moteur de SGBDR.

Sans cette initialisation, le serveur PostgreSQL ne peut tout simplement par démarrer !

Initialisation du SGBDR :

# service postgresql initdb
 Initializing database: [ OK ]

 

PostgreSQL peut maintenant être démarrer :

# service postgresql start
 Démarrage du service postgresql : [ OK ]

 

On s’assure que le service est bien lancé :

# ps aux | grep postgres
 postgres 1956 2.6 0.3 216292 6440 ? S 22:40 0:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
 postgres 1958 0.0 0.0 179304 1440 ? Ss 22:40 0:00 postgres: logger process
 postgres 1960 0.3 0.0 216292 1700 ? Ss 22:40 0:00 postgres: writer process
 postgres 1961 0.2 0.0 216292 1612 ? Ss 22:40 0:00 postgres: wal writer process
 postgres 1962 0.0 0.1 216436 2032 ? Ss 22:40 0:00 postgres: autovacuum launcher process
 postgres 1963 0.0 0.0 179436 1708 ? Ss 22:40 0:00 postgres: stats collector process
 root 1971 0.0 0.0 105308 936 pts/0 S+ 22:40 0:00 grep postgres

 

Le moteur est à présent démarrer, nous pouvons commencer à travailler…

Nous allons créer une base de donnée qui sera le « backend » d’une application de commerce en ligne : appelée « Shop » !

Cette base sera pour des raisons évidentes simplifiée.

 

La première étape est sans conteste la plus importante : l’étude du modèle de donnée.

Pour ce faire, il faut un papier et un crayon afin de définir le modèle de donnée. Je ne m’étend pas volontairement sur le MDD, l’idée du tutoriel est vraiment axé sur PostgreSQL et considère que vous avez déjà quelques base en modélisation de données et SQL.

Je rappelle, que notre Appli se doit d’être relationnelle (dans le sens où les éléments auront des relations entre eux).

 

Ici vos meilleurs outils sont : le crayon, la feuille blanche et surtout la gomme :D

Application « simplifiée » de commerce en ligne.

Mais au faite, que va faire notre Appli ?

C’est simple, permettre à des internautes (table « client ») de commander des produits (table « produit »).
Un internaute pourra donc commander un ou plusieurs produits et spécifier leurs quantités (grâce à la table « cmd_prod »).

Pour finir, le client aura bien sur une commande (table « commande ») avec un montant, une date…

 

Autour de PostgreSQL :

Lors de l’installation de PostgreSQL, un utilisateur UNIX (administrateur du moteur SQL) fut créé : postgres

# cat /etc/passwd | grep postgres
 postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash

 

Répertoire des bases de données : /var/lib/pgsql/data/base/

Tous les fichiers de configuration se trouvent dans le répertoire : « /var/lib/pgsql/data ».

Créer un lien symbolique si vous avez l’habitude de travailler dans le répertoire « /etc » :

# ln -s /var/lib/pgsql/data/ /etc/postgresql
# ls /etc/postgresql/
 base pg_clog pg_ident.conf pg_multixact pg_subtrans pg_twophase pg_xlog postmaster.opts
 global pg_hba.conf pg_log pg_stat_tmp pg_tblspc PG_VERSION postgresql.conf postmaster.pid

 

La configuration de base de postgreSQL est correcte pour la plupart des usages.

Cependant si votre serveur web est sur un autre serveur, vous serez obliger d’autoriser les connexions tout à la fin du fichier « pg_hba.conf » !

Plus d’info : http://docs.postgresql.fr/8.4/client-authentication.html

 

Pour se connecter avec l’utilisateur administrateur de PostgreSQL, rien de plus simple :

# su - postgres
 $ whoami
 postgres

Pour info : Postgres est un utilisateur Unix mais il y à aussi un utilisateur postgreSQL postgres.

 

La première étape est donc de modifier le mot de passe de l’utilisateur SQL postgres.
Pour ce faire, il faut se connecter au moteur via la commande « psql » :

$ psql
 psql (8.4.13)
 Saisissez « help » pour l'aide.
postgres=#

Le prompt nous indique ici que nous somme connecter sur la base « postgres » créée à l’installation NDLD !

 

Commençons par lister les bases de données existantes :

postgres=# \\l
 Liste des bases de données
 Nom | Propriétaire | Encodage | Tri | Type caract. | Droits d'accès
 -----------+--------------+----------+-------------+--------------+-----------------------
 postgres | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | 
 template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres : postgres=CTc/postgres 
 template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres : postgres=CTc/postgres
 (3 lignes)

 

Modifier le mot de passe de l’utilisateur SQL postgres :

postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'mysecretpassword' ;
 ALTER ROLE

Pour le bien de l’article, nous allons créer une base de données ainsi qu’un utilisateur (geek) propre à l’application (shop).
D’une manière générale, c’est une bonne pratique. En effet, en cas de compromission de « geek », seule l’appli « shop » sera vulnérable…

 

Création de l’utilisateur « geek » avec comme mot de passe « mysecretpassword » :

postgres=# CREATE USER geek WITH ENCRYPTED PASSWORD 'mysecretpassword' ;
 CREATE ROLE

 

Lister les utilisateurs SQL :

postgres=# SELECT rolname FROM pg_roles;
 rolname
 ----------
 postgres
 geek
 (2 lignes)

 

Création de notre base de donnée :

À présent, on peut créer la base de donnée. Plusieurs méthodes sont possibles pour créer un base, celle-ci est néanmoins la plus universelle :

postgres=# CREATE DATABASE shop ;
 CREATE DATABASE

 

Modifier le propriétaire de la base « shop » :

postgres=# ALTER DATABASE shop OWNER TO geek ;
 ALTER DATABASE

 

Lister de nouveau les bases :

postgres=# \\l
 Liste des bases de données
 Nom | Propriétaire | Encodage | Tri | Type caract. | Droits d'accès
 -----------+--------------+----------+-------------+--------------+-----------------------
 postgres | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | 
 shop | geek | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 |
 template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres : postgres=CTc/postgres
 template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres : postgres=CTc/postgres
 (4 lignes)

 

Se connecter en tant que « geek » :

-bash-4.1$ psql -U geek
 psql: FATAL: authentification Ident échouée pour l'utilisateur « geek »

C’est normal, nous n’avons pas autorisé cette connexion dans le fichier « pg_hba.conf » :

# vim pg_hba.conf
 # "local" is for Unix domain socket connections only
 local all all md5
 # IPv4 local connections:
 host all all 127.0.0.1/32 md5
 # IPv6 local connections:
 host all all ::1/128 md5

Afin de prendre en compte cette modification il est nécessaire de relancer le moteur Postgres (ou tout du moins de recharger la conf) :

# service postgresql restart
 Arrêt du service postgresql: [ OK ]
 Démarrage du service postgresql : [ OK ]

 

On retente une connexion :

# su - postgres
 $ psql -U geek shop
 Mot de passe pour l'utilisateur geek :
 psql (8.4.13)
 Saisissez « help » pour l'aide.
shop=>

Nous allons pouvoir créer nos tables et insérer nos données :

N.B. Dans une vraie application, l’insertion des données ainsi que l’affichage se fera bien sur via une interface Web…(ou pas forcément web ;) )

 

Création des tables :

Création de la table « marque » :

shop=> CREATE TABLE marque (
 id_marq integer PRIMARY KEY,
 nom text,
 description text,
 pays text
 );
 NOTICE: CREATE TABLE / PRIMARY KEY créera un index implicite « marque_pkey » pour la table « marque »
 CREATE TABLE

Remarque : la contrainte « PRIMARY KEY » signifie que « id_marq » ne peut pas être Null et doit être Unique.

 

On visualise cette table :

shop=> \\d
 Liste des relations
 Schéma | Nom | Type | Propriétaire
 --------+--------+-------+--------------
 public | marque | table | geek
 (1 ligne)

Tout est bon :D

 

Pour les raisons de ce tutoriel, nous allons insérer tout de suite des données dans cette table.

Insertion des marques :

shop=> INSERT INTO marque VALUES (1, 'APPLE', 'Multinationale américaine qui conçoit et vend des produits électroniques grand public, des ordinateurs personnels et des logiciels informatiques', 'USA');
 INSERT 0 1
 shop=> INSERT INTO marque VALUES (2, 'MICROSOFT', 'Multinationale informatique américaine, fondée par Bill Gates et Paul Allen. Son activité principale consiste à développer et vendre des systèmes d’exploitation et des logiciels. Son revenu annuel a atteint 60,42 milliards de dollars sur l’exercice 2007-20081 et elle emploie 88 180 personnes dans 107 pays différents.', 'USA');
 INSERT 0 1
 shop=> INSERT INTO marque VALUES (3, 'ASUS', 'Société basée à Taïwan qui produit des cartes mères, des cartes graphiques, des lecteurs optiques, des PDA, des ordinateurs portables, des périphériques réseau, des téléphones portables, des boîtiers et des systèmes de refroidissement d’ordinateurs.', 'TAIWAN');
 INSERT 0 1
 shop=> INSERT INTO marque VALUES (4, 'ARCHOS', 'société française qui conçoit et vend des produits électroniques, notamment des baladeurs numériques ainsi que des tablettes multimédias fonctionnant sous Android et Windows. Créé en 1988, le nom de cette société est un anagramme. Henri Crohas, actuel PDG et créateur de la marque.', 'FRANCE');
 INSERT 0 1

 

Afficher toutes les marques :

shop=> SELECT * FROM marque ;
 id_marque | nom | description | pays
 1 | APPLE | Multinationale américaine qui conçoit et vend des produits électroniques grand public, des ordinateurs personnels et des logiciels informatiques | USA
 2 | MICROSOFT | Multinationale informatique américaine, fondée par Bill Gates et Paul Allen. Son activité principale consiste à développer et vendre des systèmes d’exploitation et des logiciels. Son revenu annuel a atteint 60,42 milliards de dollars sur l’exercice 2007-20081 et elle emploie 88 180 personnes dans 107 pays différents. | USA
 3 | ASUS | Société basée à Taïwan qui produit des cartes mères, des cartes graphiques, des lecteurs optiques, des PDA, des ordinateurs portables, des périphériques réseau, des téléphones portables, des boîtiers et des systèmes de refroidissement d’ordinateurs. | TAIWAN
 4 | ARCHOS | société française qui conçoit et vend des produits électroniques, notamment des baladeurs numériques ainsi que des tablettes multimédias fonctionnant sous Android et Windows. Créé en 1988, le nom de cette société est un anagramme. Henri Crohas, actuel PDG et créateur de la marque. | FRANCE
 (4 lignes)

 

Création de la table client :

shop=> CREATE TABLE client (
 id_cli integer PRIMARY KEY,
 nom text,
 prenom text,
 adresse text,
 CP integer,
 ville text,
 email text,
 sexe text,
 ip inet,
 date_inscription date
 );
 NOTICE: CREATE TABLE / PRIMARY KEY créera un index implicite « client_pkey » pour la table « client »
 CREATE TABLE

 

Insertion des clients :

shop=> INSERT INTO client VALUES (1, 'DELTAGEEK', 'Zeus','20 rue de la pointe', 75000, 'PARIS','zeus@deltageek.fr','M','127.0.0.1','27/10/12');
 INSERT 0 1
 shop=> INSERT INTO client VALUES (2, 'HASH', 'Roberta','34 allée de bavière', 67000,'STRASBOURG','roberta.hash@domain.tld','F','192.168.1.24','25/12/11');
 INSERT 0 1

 

Affichage des clients :

shop=> SELECT * FROM client ;
 id_client | nom | prenom | adresse | cp | ville | email | sexe | ip | date_inscription
 -----------+-----------+---------+---------------------+-------+------------+-------------------------+------+--------------+------------------
 1 | DELTAGEEK | Zeus | 20 rue de la pointe | 75000 | PARIS | zeus@deltageek.fr | M | 127.0.0.1 | 2012-10-27
 2 | HASH | Roberta | 34 allée de bavière | 67000 | STRASBOURG | roberta.hash@domain.tld | F | 192.168.1.24 | 2011-12-25
 (2 lignes)

 

Création de la table « produit » :

shop=> CREATE TABLE produit (
 id_prod integer PRIMARY KEY,
 nom text,
 description text,
 prix numeric,
 marque integer REFERENCES marque (id_marq)
 );
 NOTICE: CREATE TABLE / PRIMARY KEY créera un index implicite « produit_pkey » pour la table « produit »
 CREATE TABLE

 

Insertion des produits :

shop=> INSERT INTO produit VALUES (1, 'iPhone 5', 'Le tout dernier téléphone de la marque à la pomme !', 679, 1);
 INSERT 0 1
 shop=> INSERT INTO produit VALUES (2, 'iPad 3', 'Lorsque vous tenez le nouvel iPad entre vos mains, tout se fait naturellement...', 489, 1);
 INSERT 0 1
 shop=> INSERT INTO produit VALUES (3, 'Windows 8', 'Nouvel OS de Micro$oft.', 159, 2);
 INSERT 0 1
 shop=> INSERT INTO produit VALUES (4, 'A6JC', 'Pc portable', 759, 3);
 INSERT 0 1
 shop=> INSERT INTO produit VALUES (5, 'ARCHOS 101 XS', 'Coverboard ultrafin pour protéger, maintenir et écrire sur votre tablette', 379, 4);
 INSERT 0 1

 

Afficher tous les produits :

shop=> SELECT * FROM produit ;
 id_prod | nom | description | prix | marque
 ---------+---------------+----------------------------------------------------------------------------------+------+--------
 1 | iPhone 5 | Le tout dernier téléphone de la marque à la pomme ! | 679 | 1
 2 | iPad 3 | Lorsque vous tenez le nouvel iPad entre vos mains, tout se fait naturellement... | 489 | 1
 3 | Windows 8 | Nouvel OS de Micro$oft. | 159 | 2
 4 | A6JC | Pc portable | 759 | 3
 5 | ARCHOS 101 XS | Coverboard ultrafin pour protéger, maintenir et écrire sur votre tablette | 379 | 4
 (5 lignes)

 

Création de la table « cmd_prod » :

shop=> CREATE TABLE cmd_prod (
 id_cmd integer REFERENCES commande,
 id_prod integer REFERENCES produit,
 quantite integer CHECK (quantite > 0),
 PRIMARY KEY (id_prod, id_cmd)
 );
 NOTICE: CREATE TABLE / PRIMARY KEY créera un index implicite « cmd_prod_pkey » pour la table « cmd_prod »
 CREATE TABLE

 

Création de la table commande :

shop=> CREATE TABLE commande (
 id_cmd integer PRIMARY KEY,
 client integer REFERENCES client (id_cli),
 date_cmd date,
 montant integer
 );
 NOTICE: CREATE TABLE / PRIMARY KEY créera un index implicite « commande_pkey » pour la table « commande »
 CREATE TABLE

 

Insertion des produits :

shop=> INSERT INTO cmd_prod VALUES (1,1,1); -- 1 iPhone pour la commande n°1
 INSERT INTO cmd_prod VALUES (2,1,1);
 INSERT INTO cmd_prod VALUES (2,4,1);
 INSERT 0 1
 shop=> INSERT INTO cmd_prod VALUES (1,2,2); -- 3 iPad pour la commande n°1
 INSERT 0 1
 shop=> INSERT INTO cmd_prod VALUES (1,3,1);
 INSERT 0 1
 shop=> INSERT INTO cmd_prod VALUES (2,1,1);
 INSERT 0 1
 shop=> INSERT INTO cmd_prod VALUES (2,4,1);
 INSERT 0 1
 shop=> INSERT INTO cmd_prod VALUES (3,5,1);
 INSERT 0 1

 

Afficher la table « cmd_prod » est encore abstrait :

shop=> SELECT * from cmd_prod ;
 id_cmd | id_prod | quantite
 --------+---------+----------
 1 | 1 | 1
 1 | 2 | 2
 1 | 3 | 1
 2 | 1 | 1
 2 | 4 | 1
 3 | 5 | 1
 (6 lignes)

 

Insertion des données dans la tables commande :
Remarque ici nous calculons le total à la main… Dans la vraie vien l’Appli se chargera de cela !

shop=> INSERT INTO commande VALUES (1,1,'10/10/12',1816);
 INSERT 0 1
 shop=> INSERT INTO commande VALUES (2,2,'03/09/12',1438);
 INSERT 0 1
 shop=> INSERT INTO commande VALUES (3,1,'25/11/12',379);
 INSERT 0 1

 

Afficher les commandes :

id_cmd | client | date_cmd | montant
 --------+--------+------------+---------
 1 | 1 | 2012-10-10 | 1816
 2 | 2 | 2012-09-03 | 1438
 3 | 1 | 2012-11-25 | 379
 (3 lignes)

Cette table nous apprend que l’utilisateur avec l’id 2 a commandé le 2012-09-03 pour 1438€ de produit (produit 1 et 4) !

Requêtes avec jointure :

Afficher les produits et leur marque :

shop=> SELECT marque.nom AS "Marque", produit.nom AS "Produit" FROM produit, marque WHERE produit.marque=marque.id_marq;
 Marque | Produit
 -----------+---------------
 APPLE | iPhone 5
 APPLE | iPad 3
 MICROSOFT | Windows 8
 ASUS | A6JC
 ARCHOS | ARCHOS 101 XS
 (5 lignes)

 

Afficher toutes les commandes :

shop=> SELECT commande.id_cmd AS "N° de la commande", client.nom, client.prenom, montant AS "Total commande" FROM commande,client WHERE commande.client = client.id_cli ;
 N° de la commande | nom | prenom | Total commande
 -------------------+-----------+---------+----------------
 1 | DELTAGEEK | Zeus | 1816
 2 | HASH | Roberta | 1438
 3 | DELTAGEEK | Zeus | 379
 (3 lignes)

 

Afficher les commandes de plus de 1500 € :

shop=> SELECT commande.id_cmd AS "N° de la commande", client.nom, client.prenom, montant AS "Total commande" FROM commande,client WHERE commande.client = client.id_cli AND montant > 1500 ;
 N° de la commande | nom | prenom | Total commande
 -------------------+-----------+--------+----------------
 1 | DELTAGEEK | Zeus | 1816
 (1 ligne)

 

Afficher les produits commandés par chaque client :

shop=> SELECT produit.nom AS "Produit", commande.id_cmd AS "N° de la commande", client.nom, client.prenom, cmd_prod.quantite, produit.prix AS "Prix unitaire", montant AS "Total commande" FROM produit,commande,client,cmd_prod WHERE commande.id_cmd = cmd_prod.id_cmd AND commande.client = client.id_cli AND produit.id_prod = cmd_prod.id_prod;
 Produit | N° de la commande | nom | prenom | quantite | Prix unitaire | Total commande
 ---------------+-------------------+-----------+---------+----------+---------------+----------------
 iPhone 5 | 1 | DELTAGEEK | Zeus | 1 | 679 | 1816
 iPad 3 | 1 | DELTAGEEK | Zeus | 2 | 489 | 1816
 Windows 8 | 1 | DELTAGEEK | Zeus | 1 | 159 | 1816
 iPhone 5 | 2 | HASH | Roberta | 1 | 679 | 1438
 A6JC | 2 | HASH | Roberta | 1 | 759 | 1438
 ARCHOS 101 XS | 3 | DELTAGEEK | Zeus | 1 | 379 | 379
 (6 lignes)

 

Conclusion sur l’application « Shop » :

Ce tutoriel permet de vous familiariser avec PostgreSQL. La base de données « Shop » permet au final de créer des clients, des produits et permettre aux clients de passer commande d’un ou plusieurs produits…

Bien sur, dans le cadre d’une « vraie » application, un « front » web serait mise en place pour permet à n’importe qui d’insérer des données dans les tables, de faire des requêtes SQL…

 

Extraction de donnée :

Extraire des données en CSV (il faut être super-utilisateur : postgres) :
Rappel, MS EXCEL utilise le délimiteur ‘;’ :

# psql -U postgres -d shop -c "COPY (select * from "client") to '/tmp/client.csv' delimiter ';' CSV HEADER"
 Mot de passe pour l'utilisateur postgres :
 COPY 2
# more /tmp/client.csv
 id_cli;nom;prenom;adresse;cp;ville;email;sexe;ip;date_inscription
 1;DELTAGEEK;Zeus;20 rue de la pointe;75000;PARIS;zeus@deltageek.fr;M;127.0.0.1;2012-10-27
 2;HASH;Roberta;34 allée de bavière;67000;STRASBOURG;roberta.hash@domain.tld;F;192.168.1.24;2011-12-25

 

La sauvegarde/restauration :

PostgreSQL est fournit avec une outil de sauvegarde bien pratique : pg_dumpall

Son utilisation est extrêmement simple.

Sauvegarde :

# su - postgres
 -bash-4.1$ pg_dump shop > shop.sql

 

Sauvegarder et archiver :

-bash-4.1$ pg_dump -Ft -b shop > shop.tar

 

Restauration :

-bash-4.1$ psql -d shop -f shop.sql

ou

-bash-4.1$ pg_restore -d nouvellebase shop.tar

 

Administration via PgAdmin :

PgAdmin est un logiciel client d’administration de PostgreSQL. Compatible FreeBSD, Linux, Mac OSX et Microsoft Windows, il s’installe très facilement et permet d’administrer vos bases via le réseau.

Pour ce faire, il faut bien sur autoriser la connexion dans votre fichier pg_hba.conf.

# vim pg_hba.conf
# Autorisation réseau Dev
host shop geek 192.168.1.0/24 md5

Ici on autorise le réseau « 192.168.1.0″ à se connecter sur la base « shop » avec le nom d’utilisateur « geek ». Un mot de passe (de type md5) sera toutefois demandé.

 

Ajout d’un serveur

Affichage de la base

Module de requête SQL intégrée :)

Comme toujoours, vous trouverez plus d’informations sur le site web officiel.

Administration en mode Web : phpPgAdmin

Installer phpPgAdmin
Ce package est présent dans le dépôt EPEL

# yum install phpPgAdmin -y

 

Modifier le vhost :

# vim /etc/httpd/conf.d/phpPgAdmin.conf
Alias /phpPgAdmin /usr/share/phpPgAdmin

 Order deny,allow
 Deny from all
 Allow from 127.0.0.1
 Allow from ::1
 Allow from IpStationDev
 # Allow from .example.com
 

 

Configurer phpPgAdmin via le fichier :

# vim /etc/phpPgAdmin/config.inc.php
 // Si vous souhaitez autoriser la connexion avec postgres :
 $conf['extra_login_security'] = false;

 

Relancer Apache.

http://myserver/phpPgAdmin/

Aperçu de l’interface full web de phpPgAdmin :

Cette interface permet d’effectuer les fonctionnalités courantes…

BONUS :

Visualisation du contenu dans une page PHP.
Alors je ne suis pas un spécialiste PHP mais voici un bout de code qui permet d’afficher la table « client » dans une page Web.

Liste des clients de l’Appli Shop

Télécharger le fichier : client.txt
PS : pensez à renommer le fichier en .php si vous souhaitez l’utiliser sur votre maquette :)

J’espère que cet article vous à fait découvrir (un peut plus) PostgreSQL…

Have a lot of Fun

Gravatar de Zeus DeltaGeekBlog
Original post of Zeus DeltaGeekBlog.Votez pour ce billet sur Planet Libre.

Articles similaires