Copyright ©
Table des matières
Table des matières
Un SGBDR est une application, généralement serveur, ou démon, permettant la gestion des bases de données relationnelles telles que définies par le langage SQL. Les SGBDR utilisent généralement les langages du SQL :
Il existe une multitude de SGBDR, fonctionnant sur les différentes plateformes informatiques connues (Windows, Linux, Unix, MacOS, ...), tels qu'Access, SQLServeur, Oracle, MySQL, DBase, PostgreSQL, ...
Table des matières
Cette partie ne concerne qu'Ubuntu, validée pour la version 8.04 Hardy Heron. Pour les autres distributions, veuillez vous reporter aux documentation corespondantes.
Sous Ubuntu, n'hésitez pas à vous reporter à la documentation dosponible à l'adresse doc.ubuntu-fr.org/postgresql
Vous devez installer le paquet postgresql-8.3 qui installe également les dépendances :
Par défaut, un login a été créé dans le système hôte et dans PostgreSQL, correspondant au super administrateur, dont le nom est postgres.
Ce super administrateur n'a pas de mot de passe. Cela signifie que personne ne peut se connecter directement grâce à ce login, ce qui est un gain de sécurité.
Mais c'est le seul à être capable d'administrer le serveur PostgreSQL. Il faut donc se connecter sous ce login, ce qui peut se faire avec la commande : $ sudo -s -u postgres
Un client en mode console a été installé en même temps que le serveur PostgreSQL. Il permet d'adminstrer, sans interface graphique qui serait couteuse en mémoire, le serveur PostgreSQL, ainsi que ses bases de données et ses utilisateurs.
Pour se connecter au serveur PostgreSQL en tant que postgres, il faut être logué dans le système hôte sous le login postgres, puis : postgres $ psql
Le prompt de la console psql se présente ainsi : postgres =#
C'est ici que les commandes SQL pourront être exécutées, toutes devant se terminer par un ;
Une commande peut être saisie sur plusieurs lignes, en utilisant la touche Entrée. Dans ce cas, le prompt de psql devient postgres -#. La commande ne sera exécuté que lorsqu'elle sera terminée, c'est-à-dire lorsque l'utilisateur saisira un ;
En parallèle des commandes SQL, il est posisble d'accéder à des commandes propres à psq :
Pour sécuriser au mieux l'accès au serveur, il est conseillé de créer un compte qui sera le nouveau super administrateur du moteur. Ce compte ayant un nom plus personnel que postgres qui est bien connu des hackers, il sera moins facilement trouvé lors d'une attaque en force brute.
Il existe deux types de comptes : les comptes du système hôte et les comptes PostgreSQL. Ces comptes sont indépendants (un utilisateur peut se loguer au système avec un login et à PostgreSQL avec un autre). Toutefois, cela suppose une gestion du mode d'authentification plus fine, qui sera étudiée plus tard. Le parallèle entre les deux login est donc pour l'instant conseillé. Par défaut, on ne peut se connecter à PostgreSQL qu'avec son login système, qui doit exister dans PostgreSQL.
Il faut préférer la documentation officielle à l'adresse http://docs.postgresql.fr/8.3/.
PostgreSQL gère similairement les utilisateurs et les groupes d'utilisateurs, à la différence qu'un utilisateur peut se loguer contrairement à un groupe. On parle donc de rôles.
Ce nouveau super administrateur aura tous les droits et remplacement postgres dans l'administration du serveur PostgreSQL. Il faut donc s'assurer qu'il aura les droits suivants : super utilisateur, créateur de rôles, créateur de bases de données. Il aura également le droit de se loguer.
Par défaut, il est souhaitable qu'il porte le même nom que l'administrateur du système hôte. cela facilite son utilisation, sans ouvrir de faille de sécurité, en partant du fait que l'administrateur dud système hôte est déjà sécurisé (login peu commn, mot de passe complexe, interdit en ssh, ...).
Pour créer ce super administrateur, il faut :
Par défaut, un utilisateur se connecte sur la base de données dont le nom correspond à son login. Il faut donc créer une base de données pour votre super administrateur : postgres =# create database <nomRoleSuperAdministrateur> owner <nomRoleSuperAdministrateur> ;
A partir de ce moment, l'utilisateur postgres ne sert plus à rien et peut être temporairement oublié.
Table des matières
Il existe principalement trois types de comptes sous PostgreSQL :
Il ne devrait y en avoir qu'un. C'est lui qui crée les autres rôles, et qui, au besoin, crée des bases de données.
Ceux sont eux qui sont responsables du développement d'une base de données : ils créent les bases de données, les tables qui y sont stockées et définissent les droits des utilisateurs, sur les base de données qu'il gère et sur les tables.
Chaque administrateur sémantique peut gérer une ou plusieurs bases de données. Chacun possède sa propre base de données, ce qui lui permet de se loguer à psql.
Les administrateurs sémantiques sont créés avec les options : createdb, login
Ceux sont ceux qui vont interroger ou enrichir les bases de données, dans la limite des droits qui leurs sont accordés.
Les comptes d'exploitations n'ont aucun droit d'administration et n'ont aucune raison de posséder leur propre base de données.
Les comptes d'exploitation sont créés avec l'option : login
La création des rôles se fait à l'aide de la commande :=# create role <nomRole> <options>. La liste des options est facilement trouvable dans la documentation officielle (ici).
Par défaut, les rôles n'ont pas de mot de passe, lacune qu'il sera indispensable de combler lorsque le serveur PostgreSQL sera ouvert aux connexions extérieures.