9
我遇到了PostgreSQL非常恼人的角色继承问题。根据documentation,它的行为不符合要求。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
根据上面链接(因为继承选项的)的文档,该SET ROLE
不应要求。
我在这里错过了什么?