Administration de PostgreSQL 10

  • Créer une base de données:

# su – postgres
postgres@mon_serveur:~$ createdb nom_base

Ou:

postgres@mon_serveur:~$ psql
psql (10.1)
Saisissez « help » pour l’aide.
postgres=# create database nom_base;

  • Supprimer une base de données:

# su – postgres
postgres@mon_serveur:~$ dropdb nom_base

Ou:

postgres@mon_serveur:~$ psql
psql (10.1)
Saisissez « help » pour l’aide.
postgres=# drop database nom_base;

  • Pour accéder à une base de données:

# su – postgres
postgres@mon_serveur:~$ psql nom_base

psql (10.1)
Saisissez « help » pour l’aide.

nom_base=#

Si le nom de la base n’est pas indiqué, le nom d’utilisateur courant sera utilisé

exemple:

postgres@mon_serveur:~$ psql
psql (10.1)
Saisissez « help » pour l’aide.

postgres=#

  • Pour quitter une base de données:

nom_base=# \q

Afficher la liste des roles

postgres=# SELECT * FROM pg_roles;

| rolsuper |:
t = true f = false

  • Créer un rôle (exemple d’un rôle qui n’est pas super-utilisateur , autorisé à  créer des bases de données et n’est pas autorisé à  créer de nouveaux rôle)

postgres@mon_serveur:~$ createuser –interactive
Saisir le nom du rôle à  ajouter : nom_user
Le nouveau rôle est-il super-utilisateur ? (o/n) n
Le nouveau rôle est-il autorisé à  créer des bases de données ? (o/n) o
Le nouveau rôle est-il autorisé à  créer de nouveaux rôle ? (o/n) n

Ou:

postgres@mon_serveur:~$ psql
psql (10.1)
Saisissez « help » pour l’aide.
postgres=#create role nom_user;

  • Pour changer le mot de passe d’un rôle:

postgres=# \password nom_user

Ou

postgres=# ALTER ROLE nom_user WITH PASSWORD ‘password’;
ALTER ROLE

  • Donner les droits à un rôle sur une base :

postgres@mon_serveur:~$ psql
psql (10.1)
Saisissez « help » pour l’aide.
postgres=# grant all privileges on database nom_base to nom_user;
GRANT

  • Lister les bases de données:

postgres=# \list

exemple
Liste des bases de données
Nom                 | Propriétaire  | Encodage | Collationnement | Type caract.      | Droits d’accès
—————–+—————+————+———————+——————+———————–
postgres           | postgres        | UTF8         | fr_FR.UTF-8       | fr_FR.UTF-8    |
nom_base       | postgres        | UTF8          | fr_FR.UTF-8      | fr_FR.UTF-8    | =Tc/postgres +
|                         |                     |                                |                             | postgres=CTc/postgres+
|                         |                     |                                |                             | nom_user=CTc/postgres

Ou:

postgres@mon_serveur:~$ psql
psql (10.1)
Saisissez « help » pour l’aide.
postgres=#select datname from pg_database ;

  • Lister les rôles:

postgres=# \du

Ou:

postgres=# SELECT usename FROM pg_user;

  • créer une base de données liée à un utilisateur:

createdb -O nom_user nom_base

  • Se connecter à une base avec un utilisateur:

psql -U nom_user -h localhost nom_base

  • Supprimer un rôle:

postgres@mon_serveur:~$ dropuser nom_user

Ou:

postgres=# drop role nom_user;

  • Créer une table:

CREATE TABLE nom_table (
colonne1  description,
colonne2  description,
colonne3  description,
colonnen-1  description,
colonnen  description
);

  • Afficher les tables d’une base:

nom_base=> \d

  • Voir le schéma d’une table:

nom_base=> \d nom_table