我使用超级用户帐户登录,这是我正在执行的过程:
1-> CREATE ROLE test WITH IN ROLE testroles PASSWORD 'testpasswd'
2-> CREATE SCHEMA AUTHORIZATION test
角色已正确创建,但在尝试创建Schema时出现此错误:
ERROR: must be member of role "test"
我使用超级用户帐户登录,这是我正在执行的过程:
1-> CREATE ROLE test WITH IN ROLE testroles PASSWORD 'testpasswd'
2-> CREATE SCHEMA AUTHORIZATION test
角色已正确创建,但在尝试创建Schema时出现此错误:
ERROR: must be member of role "test"
9条答案
按热度按时间u3r8eeie1#
您正在使用RDS吗?因为当我以他们为您创建的“超级用户”身份登录时,我也遇到了同样的问题。我能够解决这个问题的方法是创建一个新的组角色,其中包括我的超级用户和拥有架构的用户。因此,对于您来说,这意味着将您的超级用户和测试用户添加到新的角色组:
现在你应该可以创建你的schmea
z5btuh9x2#
RDS也有这个问题。
解决方法:
以超级用户身份登录
创建用户
退出
以
newuser
身份登录创建您的DB/Schema
x0fgdtte3#
难道我们不需要将管理员用户成员资格授予服务角色吗?
j8yoct9x4#
我在RDS上也遇到过这个问题。我以
root
用户身份登录,创建了一个名为myappuser
的角色,然后尝试创建一个名为superduper
的架构,其所有者是myappuser
。我找到了一个可行的解决方案。创建
myappuser
角色,并确保该角色至少具有创建数据库的权限(该权限称为CREATEDB
)。在创建myappuser
角色后,我以myappuser
登录数据库,并创建用户为myappuser
的superduper
模式。这可以正常工作。kdfy810k5#
我通过使用
postgres
用户登录来修复它(然后应用我的更改,在我的情况下更改所有权):xnifntxz6#
我刚刚使用Amazon RDS遇到了这个问题。
很多答案都是正确的,但你也可以改变角色。
下面是我的实现
psql -h ${PGHOST} -p ${PGPORT:-5432} -U ${PGUSER:-postgres} -c "ALTER USER renderer WITH CREATEDB PASSWORD '$RENDERPASSWORD'"
因此,在更改密码的同时,我还向角色添加了CREATEDB角色权限。
6yoyoihd7#
我也遇到了同样的问题。为了解决这个问题,我用新创建的角色登录并创建了数据库。不知何故,grant在RDS Postgres中不起作用。
gdx19jrr8#
我在Amazon RDS上使用
CREATE DATABASE
时遇到了这个问题。我认为它本质上与使用CREATE SCHEMA
相同。使用Amazon RDS时,发出
CREATE DATABASE
的用户必须是数据库所有者角色的成员。在我的示例中,我使用的超级用户帐户名为root
,我将创建一个角色o
,它将拥有一个数据库d
:wvmv3b1j9#
我遇到了同样的问题,它抱怨您登录的当前(主)用户不是您试图为其创建架构的用户组的成员。您应该将角色访问权限授予您的主用户,它将允许您创建SCHEMA而不会出错: