J'ai rencontré un problème d'héritage très gênant avec PostgreSQL. Il ne se comporte tout simplement pas comme il le devrait selon le documentation.L'héritage de rôle PostgreSQL ne fonctionne pas?
Je voudrais avoir un rôle de maître et accorder ses autorisations aux utilisateurs nouvellement créés. Ces utilisateurs doivent hériter des autorisations sans émettre manuellement SET ROLE
.
CREATE ROLE testrole NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
CREATE ROLE testuser LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT testrole TO testuser;
Maintenant, après que je connecter en tant que testuser
, je reçois le texte suivant:
postgres=> CREATE DATABASE foobar;
ERROR: permission denied to create database
postgres=> SET ROLE testrole;
SET
postgres=> CREATE DATABASE foobar;
CREATE DATABASE
Selon les documents liés ci-dessus (en raison de l'option HERITER), le SET ROLE
ne devrait pas être nécessaire.
Qu'est-ce qui me manque ici?