用于psql -U postgres
登录。
postgres=> CREATE DATABASE mydb;
postgres=> \c mydb;
You are now connected to database "mydb" as user "postgres".
创建模式时,得到
mydb=> CREATE SCHEMA main;
ERROR: permission denied for database mydb
没有设置的可能被拒绝的权限是什么?
编辑
当我跑步时\l
,它显示
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------------------+----------+-------------+-------------+-----------------------------------------------
mydb | mydb_administrator | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/mydb_administrator +
| | | | | mydb_administrator=CTc/mydb_administrator
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
...
\du
得到
Role name | Attributes | Member of
----------------------+------------------------------------------------------------+-------------------------------------------------------------
mydb_administrator | | {rds_iam}
mydb_application | Cannot login | {}
mydb_user | | {rds_iam,mydb_application}
postgres | Create role, Create DB +| {rds_superuser}
| Password valid until infinity |
...
所有的事情都是由postgres
用户执行的。
如果您将架构创建为 user
mydb_administrator
,它将起作用。但是您通过
SUPERUSER
从postgres
. 如果这不是故意的并且您没有其他超级用户,您将不得不以单用户模式启动 PostgreSQL 来修复它。有关详细信息,请参阅许多现有的答案。