Wpadłem na bardzo irytujący problem dziedziczenia z PostgreSQL. Po prostu nie zachowuje się tak, jak powinien, zgodnie z documentation.Dziedziczenie roli PostgreSQL nie działa?
Chciałbym mieć główną rolę i przyznawać uprawnienia nowo utworzonym użytkownikom. Ci użytkownicy powinni dziedziczyć uprawnienia bez konieczności ręcznego wydawania SET ROLE
.
CREATE ROLE testrole NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
CREATE ROLE testuser LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT testrole TO testuser;
Teraz po podłączeniu jako testuser
, mam następujące:
postgres=> CREATE DATABASE foobar;
ERROR: permission denied to create database
postgres=> SET ROLE testrole;
SET
postgres=> CREATE DATABASE foobar;
CREATE DATABASE
Zgodnie z docs połączonych powyżej (z powodu opcji dziedziczyć), nie powinno być wymagane SET ROLE
.
Czego mi tu brakuje?