Se connecter à PostgreSQL

Avant de se connecter à PostgreSQL, il faut d’abord déclarer une base de données et un utilisateur. Cela se fait par l’intermédiaire des commandes createuser et createdb. Ces commandes doivent être lancées par l’utilisateur système qui gère le service PostgreSQL sur votre serveur.

Sur une Debian, l’utilisateur qui gère le service PostgreSQL est postgres

sudo su - postgres
[sudo] password for stephane:
postgres@clipper:~$ createdb tutorial
postgres@clipper:~$ createuser -P tutorial
Enter password for new role:
Enter it again:
postgres@clipper:~$

Et voila, c’est chose faite, j’ai désormais créé une base de données tutorial et un utilisateur tutorial. Notez que le fait que les noms de la base et de l’utilisateur est un pur hasard. N’importe quel utilisateur déclaré sur la base a le droit de se connecter à la base de données, la sécurité se gère au niveau de chaque table ainsi que dans le fichier pg_hba.conf que nous étudierons dans un autre chapitre.

Il reste maintenant à se connecter à la base de donnée grace à la commande psql:

psql -U tutorial tutorial -h 127.0.0.1
Password for user tutorial:
psql (11.9 (Debian 11.9-0+deb10u1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

tutorial=>

À noter qu’à condition de déclarer avec createuser un utilisateur portant exactement le même nom que votre login sur votre système et avec une configuration par défaut, vous pouvez vous connecter à PostgreSQL sans authentication. Ainsi, sur mon système ou mon login est stephane, je me connecte directement

stephane@clipper:~$ psql tutorial
psql (11.9 (Debian 11.9-0+deb10u1))
Type "help" for help.

tutorial=>

Si vous avec une base de données qui porte exactement le même nom que votre login sur votre systeme, vous pouvez même vous connecter directement sans autre forme de procès.

stephane@clipper:~$ psql
psql (11.9 (Debian 11.9-0+deb10u1))
Type "help" for help.

stephane=>

Me voilà connecté à la base stephane avec l’utilisateur stephane depuis mon compte UNIX stephane. Bien sur, l’utilisateur stephane a été configuré dans la base avec createuser et la base avec createdb.

Ce fonctionnement correspond à la configuration par défaut, mais votre système peut fonctionner avec une autre configuration selon votre distribution. Nous verrons plus tard comment changer ce comportement.

index suite…