Il me manque quelque chose concernant la configuration de PostgreSQL. Ce que j'aimerais faire, c'est créer plusieurs bases de données et utilisateurs isolés les uns des autres, de sorte qu'un utilisateur spécifique n'ait accès qu'aux bases de données que je spécifie. Cependant, d'après ce que je peux déterminer, tout utilisateur créé a accès à toutes les bases de données sans aucune subvention spécifique.
Voici ce que je fais sur un serveur Ubuntu 12.04:
- apt-get install postgresql
- sudo -u postgres createuser -DRSP mike1 (Spécification du mot de passe du nouvel utilisateur)
- sudo -u postgres createdb data1
- psql -h localhost -U mike1 data1 (Spécification du mot de passe permettant à l'utilisateur mike1 de se connecter)
Il semble que le nouvel utilisateur "mike1" n'a aucun problème à se connecter à la base de données "data1" et à créer des tables, etc. Et cela sans exécuter aucune commande GRANT (et le propriétaire de "data1" est "postgres" car je n'ai pas spécifié propriétaire à l'étape 3). Est-ce vraiment ainsi que cela est supposé fonctionner?
Ce que j'aimerais faire, c’est accorder à mike1 un accès complet à data1, puis le répéter pour davantage d’utilisateurs et de bases de données, en veillant à ce que les utilisateurs n’aient accès qu’à une (voire à plusieurs) bases de données de mon choix.