Я столкнулся с очень раздражающей проблемой наследования ролей в PostgreSQL. В соответствии с документацией .
он просто не ведет себя должным образом
Я хотел бы иметь главную роль и предоставить ее разрешения вновь созданным пользователям. Эти пользователи должны наследовать разрешения без ручного ввода SET ROLE
.
CREATE ROLE testrole NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
CREATE ROLE testuser LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT testrole TO testuser;
Теперь, после подключения как testuser
, я получаю следующее:
postgres=> CREATE DATABASE foobar;
ERROR: permission denied to create database
postgres=> SET ROLE testrole;
SET
postgres=> CREATE DATABASE foobar;
CREATE DATABASE
Согласно документам, указанным выше (из-за опции INHERIT), SET ROLE
не требуется.
Что мне здесь не хватает?