Postgresql
不能使用 dropdb 刪除 PostgreSQL 數據庫?
我不能使用刪除數據庫
dropdb
我收到此錯誤:
ERROR: must be owner of database
但是
psql \l
我看到使用者管理員(刪除數據庫的那個)admin=CTc/postgres
除了我要刪除的數據庫。
Linux 中的 PostgreSQL 9.x 有什麼問題?
您在此處看到的
psql \l
僅意味著 Postgres 角色admin
已被 Postgres 角色授予了幾個特權postgres
- 這是預設的超級使用者,可能是數據庫的實際所有者。如果超級使用者選擇發出
GRANT
orREVOKE
命令,則執行該命令就好像它是由受影響對象的所有者發出的一樣。特別是,通過此類命令授予的權限似乎已由對象所有者授予。C -- CREATE c -- CONNECT T -- TEMPORARY
CONNECT
和TEMPORARY
on databases 也是 的預設預設權限PUBLIC
,但我們在此處看到的內容已被明確授予。沒有給出刪除數據庫的特權,它不能。只有數據庫的所有者才能刪除它。(或超級使用者。)因此錯誤消息:
錯誤:必須是數據庫的所有者
通常,每個 shell 使用者都使用同名的 Postgres 角色進行連接。因此,鑑於您擁有必要的
sudo
權利,應該這樣做:sudo -u postgres dropdb my_database_name_here
或者切換到 shell 使用者
postgres
,如下所示:但是您可能必須先斷開其他使用者的連接。看: