Test de la base

1 Créer une base de données

1 - Création de la base :

Vous devez avoir récupéré le script de création de la base "formdemo.sql"

su postgres (Vous devez être administrateur de la base)

createdb demo (création d'une base de données s'appelant demo)

2 - Création des tables de la base demo :

psql demo < formdemo.sql

2 Test de la base de données

Vous allez, au préalable, tester le fonctionnement de tout cela à partir du compte Administrateur "postgres". Pour cela utilisez les commandes suivantes :

psql demo

# Pour afficher les tables

=> \dt

# consultez la table phonebook. Vous devriez avoir le résultat.

=>select * from phonebook; (Ne pas oublier ;)

#quitter

=> \q

3 Créer un compte d'utilisateur de base de données

Vous allez créer et utiliser deux comptes utilisateurs de bases de données. "$COMPTE_HTTP" qui est utilisé pour les accès HTTP, "TP1 " que vous utiliserez comme compte local. Vous leur affecterez pour l'instant les droits minimums.

3.1 Normalement le compte système$COMPTE_HTTP existe déjà, vous pouvez vérifier avec "grep $COMPTE_HTTP /etc/passwd". Si ce n'est pas le cas, vous devrez créer un compte système pour $COMPTE_HTTP.

3.2 Création du compte système "TP1"

# Création du compte

adduser TP1

# affectation d'un mot de passe.

passwd TP1

3.3 Vous allez créer les comptes de base de données pour $COMPTE_HTTP et TP1. Attention aux réponses que vous mettrez car $COMPTE_HTTP ne doit pas avoir la possibilité de créer des tables, ni créer d'autres comptes de bases de données.

3.3.1 Création du compte anonyme $COMPTE_HTTP

#passer en DBA (Data Base Administrator)

su postgres

$ createuser $COMPTE_HTTP

Enter user's postgres ID or RETURN to use unix user ID: 99 ->

Is user "$COMPTE_HTTP" allowed to create databases (y/n) n

Is user "$COMPTE_HTTP" allowed to add users? (y/n) n

createuser: $COMPTE_HTTP was successfully added

#c'est terminé, voilà le résultat :


demo=# \q

sh-2.05b$ createuser www-data

Shall the new user be allowed to create databases? (y/n) n

Shall the new user be allowed to create more new users? (y/n) n

CREATE USER

sh-2.05b$


3.3.2 Création d'un compte DBA TP1

#passer en DBA (Data Base Administrator)

su postgres

$createuser TP1

Enter user's postgres ID or RETURN to use unix user ID: 501 ->

Is user "TP1" allowed to create databases (y/n) y

Is user "TP1" allowed to add users? (y/n) y

createuser: TP1 was successfully added

#c'est terminé

3.3.3 $COMPTE_HTTP n'a aucune permission sur les bases de données. Vous allez lui donner la permission de faire des "select".

Utilisez les commandes suivantes :

psql demo 

grant select on phonebook to $COMPTE_HTTP ;

demo=# grant select on phonebook to "www-data";

GRANT

demo=#

\q

4 Tester l'accès des comptes

Ouvrez une session avec le compte TP1 que vous avez créé.

psql demo

# Pour afficher les tables

=> \dt

# consultez la table phonebook. Vous devriez avoir le résultat.

=>select * from phonebook; (Ne pas oublier le ;)

#quitter

=> \q