Guide d'installation du SGDE / EDMS

Table des matières


Licence d'utilisation

    sgde / edms - Systeme de gestion de donnees environnementales / 
                 Environmental Data Management System
    Copyright (c) 2010 Peches et Oceans Canada / Fisheries and Oceans Canada

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.


Introduction

Ce document présente premièrement les étapes nécessaires pour installer le serveur de base de données relationnelles PostgreSQL et l'interpréteur python sur une plateforme Linux ou Windows et ensuite décrit la marche à suivre pour créer une nouvelle base de données pour le Système de gestion de données environnementales (SGDE / EDMS) à l'aide du programme d'installation installateur_sgde.py fourni avec le système SGDE /EDMS.


Note : La version 8.4 de PostgreSQL et la version 2.6.5 de Python ont été utilisées pour la rédaction de ce guide.

Installation des pré-requis

Pour créér une nouvelle base de données pour le SGDE / EDMS il faut d'abord installer le système de bases de données relationnelles PostgreSQL sur le serveur où sera hébergée la base de données. Il faut ensuite installer l'interpréteur python qui sera utilisé par le programme installateur_sgde.py. L'installateur installateur_sgde.py peut être exécuté soit directement sur le serveur qui hébergera la base de données PostgreSQL ou sur n'importe quel poste de travail qui a accès au service PostgreSQL du serveur de bases de données. Peut importe la méthode retenue, l'interpréteur Python doit être installé sur la machine d'où sera lancé installateur_sgde.py.

Installation de PostgreSQL

Installation Linux avec paquetages d'origine

Sur une plateforme Linux, on peut installer toutes les composantes de PostgreSQL à partir des paquetages (rpm, .deb,...) fournis par la distribution. Cette section documente l'installation de PostgreSQL sur une plateforme Linux de type RedHat (RedHat, CentOS ou Fedora Core).

Ouvrir un terminal puis taper les commandes suivantes:

  $>su -        # Devenir super utilisateur
  $>yum install postgresql postgresql-jdbc \
            postgresql-libs  postgresql-python  \
            postgresql-server
On peut si on le désire installer le client graphique de PostgreSQL:
  $>yum install pgadmin*
L'installation se fera dans le répertoire /var/lib/pgsql.

Chaque instance du serveur PostgreSQL gère un ensemble de bases de données qui sont regroupées dans un cluster. Pour créer un cluster de bases de données dans le répertoire /var/lib/pgsql/data il faut procéder de la façon suivante:

On doit tout d'abord arrêter le serveur postmaster de PostgreSQL:

  $>su -        # Devenir super utilisateur
  $>service postgresql stop


et ensuite créer le cluster:

  $>su - postgres # Devenir usager postgres
  $>echo $PGDATA   # Devrait être: /var/lib/pgsql/data
  $>initdb

Si la valeur de PGDATA n'est pas /var/lib/pgsql/data, il faudra la modifier avant de procéder à la création du cluster:

  $>export PGDATA=/var/lib/pgsql/data


Suite à la création du cluster, il faut démarrer le serveur de base de données postmaster:

  $>su - # devenir super utilisateur
  $>service postgresql start



Une fois le serveur redémarré, si on désire attribuer ou changer le mot de passe PostgreSQL de l'utilisateur postgres on peut procéder de deux façons.

A partir d'un terminal :

  $>psql -U postgres          
  psql (8.4.3)
  Saisissez « help » pour l'aide.

  postgres=# alter user postgres with password '<<mot_de_passe>';
  ALTER ROLE
  postgres=# \q




Avec le client graphique pgAdmin III :

Dans le bureau Gnome sous Linux Fedora Core, par exemple, pgAdmin III est disponible à partir du menu Applications -> Programmation -> pgAdmin III. Il suffit d'ajouter une nouvelle connexion : Fichier -> Ajouter un serveur ..., puis de fournir les paramètres de connexion:

pg_connexion.png

Lorsque la connexion est établie, il suffit de se rendre à l'item Roles de connexion et de faire un clic droit sur l'utilsateur postgres:

passwd_1.png

Un écran de saisie permettra de changer le mot de passe de l'utilsateur postgres:

passwd_2.png


Lorsque le mot de passe de l'utilisateur postgres a été initialisé, il faut changer les paramètres de connexion en suivant les indications de la section Configuration de connexion du serveur et des permissions des clients et utiliser la méthode de connexion 'md5'. Après avoir adapté les paramètres de connexion, on peut vérifier que le changement de mot de passe a bien été fait en tentant, à partir d'un terminal, une nouvelle connexion au serveur PostgreSQL:


  $>psql -U postgres -W
  Mot de passe pour l'utilisateur postgres : ******* 
  psql (8.4.3)
  Saisissez « help » pour l'aide.

  postgres=# \q
  


Une fois l'installation complétée, il est nécessaire de configurer les paramètres de connexion du serveur et des clients. Cette étape est décrite dans la section Configuration de connexion du serveur et des permissions des clients.
Note importante : L'attribution d'un mot de passe à l'utilisateur postgres n'est pas suffisante pour obliger l'autentification lors d'une connexion. Pour cette raison, il est essentiel de configurer les paramètres de connexion du serveur et des clients.





Installation Linux ou Windows avec le "One click installer"

La méthode la plus simple pour installer le système bases de données relationnelles PostgreSQL sur une plateforme Windows (et à la limite, sous UNIX ou Linux)consiste à utiliser le "One click installer" fourni par PostgreSQL à l'adresse suivante: http://www.postgresql.org/download/. Le "One click installer" qui est disponible pour plusieurs sytèmes d'exploitation permet d'installer en une seule étape toutes les composantes de PostgreSQL : le serveur PostgreSQL lui-même, le client en mode ligne de commande, les bibliothèques, les langages de programmation PL/Java et PL/pgSQL ainsi que l'utilitaire pgAdmin III. De plus, le "One click installer" forcera l'utilisation d'un mot de passe de connexion pour l'utilisateur postgres et initialisera le répertoire ou "Cluster" dans lequel résideront les bases de données et tous les fichiers de configuration de PostgreSQL.

Exempe d'installation de PostgreSQL 8.4 sous Linux Fedora Core 12 avec le "One click installer"


On télécharge le "One click installer" à partir du site http://www.postgresql.org/download/. Le fichier ainsi obtenu se nomme, par exemple, postgresql-8.4.3-1-linux-x64.bin.
En tant qu'usager root:
$> chmod +x postgresql-8.4.3-1-linux-x64.bin
$> ./postgresql-8.4.3-1-linux-x64.bin

Ce qui lancera l'installateur en mode graphique:

 pg_setup

Il suffit par la suite de suivre les instructions.

Une fois l'installation de base complétée, le "One click installer" démarrera l'installateur des modules complémentaires, le "Stack Builder".

pg_stack_builder

On choisit alors l'option "PostgreSQL 8.4 sur le port 5432" afin d'obtenir une liste des modules complémentaires:

pg_stack_builder_apps

On peut alors sélectionner les modules désirés tels les pilotes JDBC et ODBC du menu "Database Drivers".

L'installation sous Windows est pratiquement identique. Seuls le téléchargement de l'installateur et le répertoire d'installation diffèrent. Sous Linux, l'installation se fera dans le répertoire /opt/PostgreSQL alors que sous Windows, le répertoire sera C:\Program Files (x86)\PostgreSQL.

Configuration de connexion du serveur et des permissions des clients

Afin de permettre aux clients de se connecter au serveur PostgreSQL à partir d'un poste de travail distant, il faut apporter des modifications au fichier de configuration du serveur pstgresql.conf ainsi qu'au fichier de contrôle d'accès pg_hba.conf. Dans une installation par défaut, ces fichiers se retrouvent,
sous Windows dans:
C:\Program Files (x86)\PostgreSQL\8.4\data\
et sous Linux dans :
/opt/PostgreSQL/8.4/data/ (installation "One click installer")
/var/lib/pgsql/data/ (installation à partir de paquetages rpm)

Dans un premier temps, il faut éditer le fichier postgresql.conf pour indiquer au serveur sur quelle interface réseau il doit attendre les demandes de connexion. Pour ce faire, il faut ajuster le paramètre listen_addresses à la valeur désirée. Par exemple, pour que le serveur accepte à la fois des demandes de connexions provenant de la machine locale "localhost" et de l'interface réseau "132.215.29.12", on ajuste listen_addresses comme suit:

listen_addresses = '132.215.29.12,localhost'

Le paramètre listen_addresses se trouve dans la section CONNECTIONS AND AUTHENTICATION du fichier postgresql.conf:
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'		# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost', '*' = all
					# (change requires restart)
port = 5432				# (change requires restart)



Il faut ensuite modifier le fichier pg_hba.conf pour y indiquer les postes clients et utilisateurs ayant accès au service PostgreSQL. Par exemple, pour permettre à tous les utilsateurs du poste de travail ayant l'adresse 132.215.11­.17 de se connecter au serveur en utilsant un mot de passe chiffré (md5), on ajoutera la ligne:
host    all         all         132.215.11.17/32          md5
Note importante: Par défaut, la méthode d'autentification utilisée est 'trust', ce qui revient à dire que l'attribution d'un mot de passe pour les utilisateurs est totalement inutile. Pour forcer l'autentification par mot de passe, il faut utiliser la méthode 'md5' (ou toute autre méthode que 'trust'). La section à modifier se trouve à la fin du fichier pg_hba.conf:
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL listen
# on a non-local interface via the listen_addresses configuration parameter,
# or via the -i or -h command line switches.
#



# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "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
Après avoir fait les modifications, il faut redémarrer le serveur PostgreSQL. Si l'installation a été réalisée à l'aide du "One click installer" on redémarre le serveur à l'aide du menu de gestion de PostgreSQL. Par exemple, sous Gnome en Linux:

pg_restart_png

Si on a fait l'installation à partir de paquetages (rpm), on peut redémarrer le serveur de la façon suivante:

  $>su - # devenir super utilisateur
  $>service postgresql restart

Installation de Python

Installation de Python sur Linux avec paquetages d'origine

Sur une plateforme Linux, on peut installer l'interpréteur Python a partir des paquetages (rpm, .deb,...) fournis par la distribution. Pour faire l'installation de Python sur une plateforme Linux de type RedHat (RedHat, CentOS ou Fedora Core), il suffit d'entrer les commandes suivantes:

  $>su -        # Devenir super utilisateur
  $>yum install python
  

Installation de Python sur Windows

Pour installer l'interpréteur Python sur une plateforme Windows il faut télécharger le programme sur le site http://www.python.org/download/ puis lancer l'installateur.


Création de la base de données

La distribution du SGDE - EDMS inclut un script de création de la base de données. Ce programme Python - installateur_sgde.py - automatise la mise en place d'un SGDE - EDMS complet: utilisateur, rôle groupe, base de données, schémas, etc.

Tel que livré,installateur_sgde.py ne fonctionnera convenablement que pour une nouvelle installation complète de toutes les composantes du SGDE / EDMS. Lors d'une ré-installation, il est donc préférable de détruire au préalable les schémas et la base de données s'ils existent déjà. On peut, au choix, aussi détruire les rôles PostgreSQL associés au SGDE / EDMS. Si les rôles PostgreSQL existent déjà lors du lancement de installateur_sgde.py, il apparaîtra alors à l'écran des messages tels que:

   psql:script_creation_sgde.sql:32: ERROR:  role "groupe_sgde" already exists 
   psql:script_creation_sgde.sql:34: ERROR:  role "sgde" already exists
   psql:script_creation_sgde.sql:35: NOTICE:  role "sgde" is already a member of role "groupe_sgde"
Ces messages peuvent être ignorés.

Le script d'installation installateur_sgde.py se trouve dans le répertoire "sgde/sgde-install/bin" de la distribution.

Initialisation des chemins

Avant de lancer installateur_sgde.py il faut s'assurer que les programmes Python et psql sont dans le chemin d'exécution (variable PATH).

Linux

Sous Linux, on vérifie que ces deux programmes sont reconnus en tapant les commandes:

   $>which python
   /usr/bin/python
   $>which psql
   /usr/bin/psql
Si on a installé PostgreSQL à l'aide du "One click installer", le programme psql aura été installé dans le répertoire /opt/PostgreSQL/<version>/bin (ex., /opt/PostgreSQL/8.4/bin/ pour PostgreSQL version 8.4). En bash ou sh, on peut ajouter ce chemin de la façon suivante:

   $>export PATH=${PATH}:/opt/PostgreSQL/8.4/bin
 


Windows

Sous Windows, Python sera probablement installé dans le répertoire c:\Python<version> (ex. c:\Python26) alors que psql se retrouvera sous C:\Program Files (x86)\PostgreSQL\<version>\bin (ex., C:\Program Files (x86)\PostgreSQL\8.4\bin).

Pour ajouter ces chemins à la variable d'environnement PATH, on peut ouvrir la fenêtre Démarrer->Panneau de configuration->Système et sécurité->Système puis cliquer sur l'onglet Paramètres système avancés

securite_systeme.png


qui ouvrira la fenêtre Propriétés système dans laquelle on sélectionne Variables d'environnement.


proprietes_systeme.png


On double-clique la variable Path de la section Variables système


path.png


ce qui ouvrira une fenêtre d'édition dans laquelle on ajoute les chemins vers psql et python en utilisant le caractère ";" comme séparateur de chemins.


path_modif.png


Utilisation de installateur_sgde.py

installateur_sgde.py est un programme interactif en mode texte qui permet de créer une nouvelle base de données SGDE / EDMS. Il peut être utilisé directement sur la machine qui héberge le serveur PostgreSQL ou sur un poste de travail distant, pourvu que celui-ci ait les droits de connexion appropriés (voir la section Configuration de connexion du serveur et des permissions des clients).

installateur_sgde.py utilise un ensemble de sept gabarits qui servent à produire un script SQL complet de création du SGDE / EDMS: rôle groupe et rôle utilisateur PostgreSQL, tables, index, procédures et déclencheurs de la base de donnée . En plus, l'installateur initialise un dictionnaire terminologique contenant la définition de plusieurs paramètres physiques et biologiques de base. Ces définitions se retrouvent, entre autres, dans les tables mot_dict et mots_clefs. Finalement, installateur_sgde.py ajoute l'identifiant du rôle utilsateur (e.g., sgde) dans la table intervenant, puis crée un nouveau groupe du même nom que l'intervenant dans la table groupes_sgde et indique que le nouvel intervenant fait partie du nouveau groupe en ajoutant une entrée dans la table intervenant_groupe. Un nouveau groupe PUBLIC est aussi ajouté à la table groupes_sgde. Veuillez consulter la section Utilisateur PostgreSQL versus Intervenant SGDE / EDMS pour plus de détails concernant les différents rôles d'utilisateurs du SGDE / EDMS.



Pour lancer l'installateur, il faut pouvoir se connecter au serveur PostgreSQL en tant qu'usager postgres.

Dans la documentation qui suit, la variable <chemin_install> représente le chemin absolu ou relatif du répertoire contenant le script d'installation installateur_sgde.py. Sous Linux on ouvre un terminal et on tape les commandes suivantes:
 
    $> <chemin_install>/installateur_sgde.py
     
 


Sous Windows on ouvre une fenêtre Invite de commandes (ou Exécuter->cmd) et on y entre:


    $>chcp 1252     # Passer à l'encodage Windows-1252
    $> <chemin_install>\installateur_sgde.py




L'installateur demandera alors de préciser les différents paramètres nécessaires à la création du SGDE / EDMS:
Nom (ou adresse IP) du serveur de base de données:
Nom ou adresse IP de la machine sur laquelle a été installé le serveur PostgreSQL. Si l'installateur est exécuté sur la même machine que le serveur de bases de données, on utilise localhost comme nom de machine. Il n'y a pas de valeur par défaut.
Nom du rôle groupe pour votre SGDE [groupe_sgde]:
Chaque utilisateur de PostgreSQL fait partie d'un groupe duquel il hérite certains droits. Un rôle groupe n'a pas le droit de se connecter à une base de données Tous les utilsateurs du SGDE / EDMS doivent faire partie du groupe indiqué ici. Valeur par défaut: groupe_sgde
Nom du rôle utilisateur pour votre SGDE [sgde]:
L'installateur créera un premier utilisateur de PostgreSQL ayant le droit de se connecter et d'administrer le SGDE / EDMS. En plus, une nouvelle entrée sera ajoutée à la table intervenant de la base de données. Valeur par défaut: <sgde>
Mot de passe du rôle utilisateur pour votre SGDE [sgde]:
Mot de passe qui sera utilisé par l'utilisateur sgde pour se connecter à PostgreSQL. Valeur par défaut: sgde
Nom de la base de données pour votre SGDE [sgde]:
Nom qui sera attribué à la base de données. Une base de données PostgreSQL est le "contenant" à l'intérieur duquel sont regroupés des schémas. Valeur par défaut: sgde
Nom du schéma pour les données [sgde]:
Nom qui sera attribué au schéma à l'intérieur duquel seront créées les tables et procédures principales du SGDE / EDMS . Un schéma est le "contenant" à l'intérieur duquel on regroupe un ensemble de tables, fonctions, vues, etc. Valeur par défaut: sgde.
Nom du schéma pour les fonctions spatio-temporelles [st]:
Nom qui sera attribué au schéma à l'intérieur duquel seront conservées les fonctions et procédures spatio-temporelles du SGDE / EDMS. Valeur par défaut: st



Lorsque tous les paramètres nécessaires ont été fournis, installateur_sgde.py produit un script SQL de création de la base de données (script_creation_sgde.sql) dans le répertoire courant puis fait un appel au programme psql qui se connecte au serveur PostgreSQL en utilisant ce script comme fichier de directives. Au moment de la connexion psql demandera le mot de passe de l'utilsateur postgres à deux reprises: une première fois pour créer la base de données SGDE / EDMS et une seconde fois pour se connecter directement à la nouvelle base de données SGDE / EDMS afin d'y créer tous les objets (tables, index, déclencheurs, etc.).


Exemple

Dans cet exemple, nous allons créer un nouveau SGDE / EDMS en utilisant les paramètres suivants:
   $>./installateur_sgde.py
   Nom (ou adresse IP) du serveur de base de donnees: localhost
   Nom du role groupe pour votre SGDE [groupe_sgde]: role_env
   Nom du role utilisateur pour votre SGDE [sgde]: admin_env
   Mot de passe du role utilisateur pour votre SGDE [sgde]: admin_env
   Nom de la base de donnees pour votre SGDE [sgde]: bd_env
   Nom du schema pour les donnees [sgde]: bd_env
   Nom du schema pour les fonctions spatio-temporelles [st]: st_env




Lors de la création de la base de données, de nombreux messages émanant du serveur seront affichés à l'écran:
CREATE ROLE
CREATE ROLE
GRANT ROLE
CREATE DATABASE
GRANT
GRANT
GRANT

...

Ces messages sont normaux et peuvent être ignorés.
Pour vérifier que l'installation s'est bien déroulée, on peut se connecter à la base de données à l'aide du client psql et faire quelques requêtes:


   $>psql -U admin_env -d bd_env -h localhost
   Mot de passe pour l'utilisateur admin_env : ******** 
   psql (8.4.3)
   Saisissez « help » pour l'aide.
   bd_env=>
   bd_env=>select * from version_sgde;
    seq_vers_sgde | no_vers_sgde | action_vers_sgde |   message_vers_sgde   
   ---------------+--------------+------------------+-----------------------
                1 |       1.0000 | Postgresql 8.1 + | SGDE-EDMS Version 1.0
   (1 ligne)

   bd_env=> select * from intervenant;
    acr_nom_int | seq_int |  nom_int  | coor_int | status_emploi| empl_int | mot_de_passe | courriel 
   -------------+---------+-----------+----------+--------------+----------+--------------+----------
    admin_env   |       1 | admin_env |          | indetermine  |          | BIDON        | 
   (1 ligne)

   bd_env=> select * from groupes_sgde;
    acr_nom_groupe | responsable | description 
   ----------------+-------------+----------------------------------------------
    admin_env      |             | 
    PUBLIC         | sgde        | Groupe pour acces public aux jeux de donnees
   (2 lignes)


   bd_env=> select * from intervenant_groupe;
    acr_nom_int | acr_nom_groupe 
   -------------+----------------
    admin_env   | admin_env
   (1 ligne)


   bd_env=> select count(*) from mot_dict;
    count 
   -------
      174
   (1 ligne)

   bd_env=>\q 
   $>
   



On peut aussi utiliser le client graphique pgAdmin III pour vérifier le contenu de la base de données SGDE /EDMS.

Création des comptes utilisateurs de PosgreSQl et du SGDE /EDMS

Dans ce document, il a été fait mention des concepts de rôle utilisateur, ou rôle de connexion, de rôle groupe et d'intervenant. Cette section vise à clarifier les différents types d'utilisateurs du SGDE / EDMS et à présenter l'utilisation des outils disponibles pour créer et gérer ces utilisateurs.

Différents types d'utilisateurs ou rôles



Dans le système SGDE / EDMS, tel qu'implanté sous PostgreSQL, il existe deux «familles» de groupes et d'utilisateurs. Une première famille de groupes et d'utilisateurs ne concerne que le système de bases de données PostgreSQL. Elle sert à contrôler les droits de connexion aux bases de données PostgreSQL ainsi que les privilèges d'accès et d'utilisations de certains objets PostgreSQL. Cette famille regroupe les concepts de Rôle groupe PostgreSQL et de Rôle de connexion (utilisateur) PostgreSQL. La seconde famille de groupes et d'utilisateurs n'est utilisée que par le sytème SGDE / EDMS lui-même et sert à identifier, par exemple, qui est le propriétaire d'un jeu de données et qui peut consulter ce jeu de données. Cette famille regroupe les concepts de Groupe SGDE / EDMS et d'Intervenant SGDE / EDMS.

Rôle groupe PostgreSQL



Un rôle groupe Postgresql est un objet qui permet de regrouper un certain nombre d'utilisateurs afin de faciliter la gestion des privilèges de ces utilisateurs. Un rôle groupe Postgresql est donc un rôle (au sens PostgreSQL) auquel on attribue certains privilèges quant à l'utilisation des bases de données. Pour octroyer ces privilèges à un nombre d'utilisateurs (rôle de connexion), il suffit par la suite de rendre ces utilisateur membres du groupe. Un rôle groupe n'a habituellement pas le privilège de se connecter à une base de données PostgreSQL.
Pour créer un rôle groupe, on peut se connecter au serveur PostgreSQL avec le client psql. Par exemple, pour créer le rôle groupe par défaut (groupe_sgde) du SGDE / EDMS on utilise la commande:
   $>psql -U postgres  -h localhost -W
   Mot de passe pour l'utilisateur postgres : ******** 
   psql (8.4.3)
   Saisissez « help » pour l'aide.
   postgres=#CREATE ROLE groupe_sgde INHERIT NOSUPERSUER NOCREATEDB NOCREATEROLE;
   CREATE ROLE
   postgres=#
   postgres=#\q
   $>  

Veuillez prendre note que le groupe par défaut est créé automatiquement par le script d'installation et n'est utilisé ici qu'à titre d'exemple.

La création des rôles groupes peut aussi se faire en utilisant l'utilitaire pgAdmin III.

Rôle de connexion (utilisateur) PostgreSQL



Un rôle de connexion permet de définir un véritable utilisateur ayant le droit de se connecter à une base de données PostgreSQL. De plus, un rôle de connexion peut être membre d'un ou plusieurs rôles groupes et ainsi bénéficier des privilèges accordés à ces rôles groupes. On peut créer un rôle de connexion de la même façon qu'on crée un rôle groupe. Par exemple, le rôle de connexion par défaut (sgde) créé par le script d'installation a été produit de la façon suivante:
  $>psql -U postgres  -h localhost -W
   Mot de passe pour l'utilisateur postgres : ******** 
   psql (8.4.3)
   Saisissez « help » pour l'aide.
   postgres=#CREATE ROLE sgde LOGIN INHERIT NOSUPERSUER CREATEDB CREATEROLE PASSWORD 'mot_de_passe';
   CREATE ROLE
Par la suite, on fait de l'utilisateur sgde un membre du groupe groupe_sgde à l'aide de la commande GRANT:
   postgres=#GRANT groupe_sgde to sgde;
   postgres=#
   postgres=#\q
   $>  

On peut vérifier que les rôles on bien été définis en utilisant la commande \du de psql:
   $>psql -U postgres -h localhost
   psql (8.4.4)
   Saisissez « help » pour l'aide.

   postgres=# \du
                       Liste des rôles
   Nom du rôle |        Attributs         |   Membre de   
   -------------+--------------------------+---------------
   groupe_sgde | Ne peut pas se connecter | {}
   postgres    | Superutilisateur         | {}
               : Créer un rôle              
               : Créer une base             
   sgde        | Créer un rôle            | {groupe_sgde}
               : Créer une base             
   postgres=# 
   postgres=#\q
   $>  



Mentionnons que les rôles PostgreSQL existent au niveau du serveur lui-même. Le fait de détruire une base de données ne détruit pas les rôles qui avaient le droit de s'y connecter. Le droit de se connecter à une base de données et d'en utiliser les schémas est contrôlé par le biais des privilèges qui sont accordés à un rôle. Nous pouvons, par exemple, créer un nouveau rôle de connexion nouveau_role à qui nous accorderons le droit d'utiliser la base de données SGDE / EDMS de la façon suivante:
  $>psql -U postgres  -h localhost -W
   Mot de passe pour l'utilisateur postgres : ******** 
   psql (8.4.3)
   Saisissez « help » pour l'aide.
   postgres=#CREATE ROLE nouveau_role LOGIN INHERIT NOSUPERSUER NOCREATEDB NOCREATEROLE PASSWORD 'mot_de_passe';
   CREATE ROLE
   postgres=#GRANT groupe_sgde to nouveau_role;
   postgres=#\q
   $>  
L'utilisateur nouveau_role pourra ainsi se connecter au SGDE / EDMS car il hérite des privilèges du rôle groupe_sgde qui a le droit d'utiliser la base de données SGDE / EDMS.

Ici aussi, toutes les opérations de gestion des rôles de connexion peuvent être accomplies en utilisant le client pgAdmin III.

Intervenant SGDE /EDMS



Dans le SGDE / EDMS, les informations relatives aux chefs des missions scientifiques, aux producteurs de données, aux responsables du contrôle de la qualité ainsi qu'aux agents inscripteurs de données sont conservées dans une table ayant pour nom intervenant. Pour le SGDE / EDMS, un intervenant est donc simplement quelqu'un qui a joué un rôle quelconque dans la production d'un jeu de données. Certains intervenants peuvent bénéficier d'un rôle de connexion PostgreSQL. Ces intervenants pourront alors se connecter directement au SGDE / EDMS pour y manipuler les jeux de données.

Lors de l'installation du SGDE / EDMS avec le script installateur_sgde.py un intervenant ayant le même nom que le rôle de connexion PostgreSQL est créé:
   $>psql -U sgde -h localhost
   Mot de passe pour l'utilisateur sgde : 
   psql (8.4.4)
   Saisissez « help » pour l'aide.

   sgde=> select * from intervenant;
    acr_nom_int | seq_int | nom_int | coor_int | status_emploi | empl_int | mot_de_passe | courriel 
   -------------+---------+---------+----------+--------------+----------+--------------+----------
    sgde        |       1 | sgde    |          | indetermine  |          | BIDON        | 
(1 ligne)




On peu créer un nouvel intervenant a l'aide du client psql. Par exemple, pour créer les deux nouveaux intervenants hamlet et othello on procède de la façon suivante:
   $>psql -U sgde -h localhost
   Mot de passe pour l'utilisateur sgde : 
   psql (8.4.4)
   Saisissez « help » pour l'aide.
   sgde=> insert into intervenant(acr_nom_int,nom_int,status_emploi, mot_de_passe) values ('hamlet','hamlet','Prince du Danemark', 'BIDON');
   INSERT 0 1
   sgde=> insert into intervenant(acr_nom_int,nom_int,status_emploi, mot_de_passe) values ('othello','Othello','le Maure de Venise', 'BIDON');
   INSERT 0 1
   sgde=> select * from intervenant;
    acr_nom_int | seq_int |   nom_int    | coor_int | status_emploi      | empl_int | mot_de_passe | courriel 
   -------------+---------+--------------+----------+--------------------+----------+--------------+----------
    sgde        |       1 | sgde         |          | indetermine        |          | BIDON        | 
    hamlet      |       3 | hamlet       |          | Prince du Danemark |          | BIDON        | 
    othello     |       4 | Othello      |          | le Maure de Venise |          | BIDON        | 
    (3 lignes)
   sgde=>\q
   $>

Toutes ces opérations peuvent être accomplies en utilisant le client pgAdmin III.

De plus, un utilitaire graphique Matlab © de gestion des intervenants est fourni avec le SGDE / EDMS. Pour de plus amples informations, veuillez consulter le document gestion_intervenants.html de la suite d'outils Matlab © du SGDE / EDMS.

Groupe SGDE /EDMS



Le contrôle des droits d'accès aux différents jeux de données du SGDE / EDMS se fait par le biais du concept de groupes. Un jeu de données est soit disponible à tous les utilisateurs (accès public) ou disponible uniquement aux intervenants membres du groupe qui en est le propriétaire (accès restreint). Lors de l'ajout d'un intervenant dans le SGDE / EDMS, un déclencheur de la base de données crée automatiquement un nouveau groupe ayant le même nom que l'intervenant. Par exemple, le script d'installation crée à la fois un intervenant (sgde, intervenant par défaut) et un groupe (sgde, groupe par défaut) dont le seul membre du groupe est l'intervenant sgde. Ainsi, un jeu de données accessible au groupe sgde ne sera en fait accessible qu'à l'intervenant sgde.

   sgde=> select * from groupes_sgde;
    acr_nom_groupe | responsable |                 description                  
   ----------------+-------------+----------------------------------------------
    sgde           |             | 
    PUBLIC         | sgde        | Groupe pour acces public aux jeux de donnees
    hamlet         |             | 
    othello        |             | 
   (4 lignes)

   sgde=> select * from intervenant_groupe;
    acr_nom_int | acr_nom_groupe 
   -------------+----------------
    sgde        | sgde
    hamlet      | hamlet
    othello     | othello
    (3 lignes)

   sgde=>


Note: dans cet exemple, les groupes hamlet et othello ont été créés automatiquement par le déclencheur de la base de données lors de la création des intervenants correspondants. Voir l'exemple précédant sur la création des intervenants.

Pour créer un nouveau groupe (ici Shakespeare) à l'aide de psql, on peut procéder de la façon suivante:
   $>psql -U sgde -h localhost
   Mot de passe pour l'utilisateur sgde : 
   psql (8.4.4)
   Saisissez « help » pour l'aide.
   sgde=> insert into groupes_sgde(acr_nom_groupe,responsable,description) values ('Shakespeare','sgde','Pieces de Shakespeare');
   INSERT 0 1
   sgde=>


Et pour ajouter les intervenants hamlet et othello à ce nouveau groupe, on procède comme suit:
    sgde=> insert into intervenant_groupe (acr_nom_int,acr_nom_groupe) values('hamlet','Shakespeare');
    INSERT 0 1
    sgde=> insert into intervenant_groupe (acr_nom_int,acr_nom_groupe) values('othello','Shakespeare');
    INSERT 0 1
    sgde=>
    sgde=> select * from intervenant_groupe;
     acr_nom_int | acr_nom_groupe 
    -------------+----------------
     sgde        | sgde
     hamlet      | hamlet
     hamlet      | Shakespeare
     othello     | othello
     othello     | Shakespeare
    (5 lignes)


Toutes ces opérations peuvent être accomplies en utilisant le client pgAdmin III.



De plus, un utilitaire graphique Matlab © de gestion des groupes est fourni avec le SGDE / EDMS. Cet outil permet de créer ou supprimer des groupes et de contrôler la composition des groupes. Pour de plus amples informations, veuillez consulter le document gestion_groupe.html de la suite d'outils Matlab © du SGDE / EDMS.

Informations complémentaires



Ce site regroupe plusieurs articles concernant la configuration et l'optimisation des performances d'un serveur PostgreSQL (en anglais).

Vous trouverez ici le manuel de Documentation de PostgreSQL 8.4 (en anglais).

Vous trouverez ici, en bas de page, quelques informations concernant les besoins en espace disque d'une base de données PostgreSQL.