Créer des bases de données et des utilisateurs

Informations[1]

Objectifs

  • Comprendre le concept d'utilisateur et de permissions au sens PostgreSQL.

  • Savoir créer des bases de données et des utilisateurs.

Mise en situation

Une installation PostgreSQL peut gérer plusieurs bases de données. Quand a-t-on besoin de plusieurs bases de données pour une même application ? Un grand classique consiste à utiliser une base de données pour les tests, et une base de données pour la production. Qui dit base de données différente dit aussi utilisateurs différents et autorisations différentes : on peut imaginer que la base de test soit accessible à plus d'utilisateurs que la base de production.

Sur PostgreSQL, une base et un utilisateurs nommés « postgres » sont créés par défaut. Dans ce module, vous apprendrez à créer de nouvelles bases et de nouveaux utilisateurs avec une syntaxe proche de SQL.

SyntaxeCréer un utilisateur

1
CREATE USER user1 PASSWORD 'password';

SyntaxeCréer une base de données

1
CREATE DATABASE mydb OWNER user1;

La clause OWNER permet de spécifier le propriétaire (owner) de la base de données. Celui-ci a tous les droits sur sa base de données. Il pourra créer, modifier et détruire les tables de le base de données.

ComplémentSupprimer des bases de données et des utilisateurs

1
DROP DATABASE mydb;
2
DROP USER user1;

ComplémentModifier le mot de passe d'un utilisateur

1
ALTER USER user1 PASSWORD 'mypassword';

ComplémentChanger le propriétaire d'une base de données

1
ALTER DATABASE mydb OWNER TO user2;

Syntaxepsql : catalogues des utilisateurs et des bases de données

psql dispose de commandes pour consulter les catalogues des utilisateurs et des bases de données :

  • \du : liste des utilisateurs,

  • \l : liste des bases de données.

Syntaxepsql : changer d'utilisateur

Si on est connecté à une base de donnée avec un utilisateur et que l'on veut changer d'utilisateur et/ou de base, avec psql on utilise :

  • \c db user : pour se connecter à la base db avec le compte user.