我遇到了一个非常烦人的PostgreSQL角色继承问题.根据文档,它根本不表现.
我想拥有一个主角色,并将其权限授予新创建的用户.这些用户应该继承权限,而无需SET ROLE手动发布.
CREATE ROLE testrole NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
CREATE ROLE testuser LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT testrole TO testuser;
Run Code Online (Sandbox Code Playgroud)
现在我连接后testuser,我得到以下内容:
postgres=> CREATE DATABASE foobar;
ERROR: permission denied to create database
postgres=> SET ROLE testrole;
SET
postgres=> CREATE DATABASE foobar;
CREATE DATABASE
Run Code Online (Sandbox Code Playgroud)
根据上面链接的文档(由于INHERIT选项),SET ROLE不应该要求.
我在这里错过了什么?
Mil*_*dev 24
再往下一页:
"角色属性LOGIN,SUPERUSER,CREATEDB和CREATEROLE可以被视为特殊权限,但它们永远不会作为数据库对象的普通权限继承.您必须实际将SET ROLE设置为具有这些属性之一的特定角色才能利用这个属性."
| 归档时间: |
|
| 查看次数: |
4007 次 |
| 最近记录: |