Postgresql

無法使用 PostgreSQL 為數據庫創建架構

  • May 19, 2021

用於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,它將起作用。

但是您通過SUPERUSERpostgres. 如果這不是故意的並且您沒有其他超級使用者,您將不得不以單使用者模式啟動 PostgreSQL 來修復它。有關詳細資訊,請參閱許多現有的答案。

引用自:https://dba.stackexchange.com/questions/291765