Postgresql
無法使用 PostgreSQL 為數據庫創建架構
用於
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 來修復它。有關詳細資訊,請參閱許多現有的答案。