问题描述
我按照文档使用createuser xxx -g postgres -i
创建了一个作为postgres成员的帐户,但是似乎新用户xxx没有postgres的任何特权,例如create user和create db。为什么呢?
解决方法
来自the docs:
可以将角色属性
LOGIN
,SUPERUSER
,CREATEDB
和CREATEROLE
视为特殊特权,但是它们绝不会像对数据库对象的普通特权那样被继承。为了使用该属性,您实际上必须SET ROLE
担任具有这些属性之一的特定角色。
您的用户有权承担postgres
的角色,但它不会继承permission to create a user or database。您需要明确授予(实际上是ALTER ROLE
)。 (尽管用户可以自己授予它。)