在CentOS 6(64位)上全新安裝PostgreSQL 9.3(根據PostgreSQL維基上的YUM安裝手冊)將不會授予任何用戶權限。爲什麼我不能設置PostgreSQL全新安裝的權限
我登錄到Postgres的用戶,開放的PSQL,然後我爲我的默認的用戶創建一個角色:
CREATE ROLE <name> WITH PASSWORD '<password>';
,然後嘗試授予其默認的Postgres數據庫的權限:
GRANT ALL ON DATABASE postgres TO <user>;
它給出了預期的輸出,但用戶對postgres沒有任何權限。 \dp <user>
的輸出也是quizically空。額外的測試顯示我無法給予任何用戶權限。然而,當我嘗試刪除已被授予這些不存在的權限的角色,它說
ERROR: role "<user>" cannot be dropped because some objects depend on it
DETAIL: privileges for database postgres
我很茫然。我也檢查過,以確保postgres Linux用戶在PostgreSQL數據目錄上具有適當的文件權限。
之前使用REVOKE DROP角色 –
問題是什麼? –
「,但用戶對postgres沒有任何權限」 - 實際上該角色對相關數據庫具有權限(請查看['has_database_privilege()'](http://www.postgresql.org/docs/current/static /functions-info.html#FUNCTIONS-INFO-ACCESS-TABLE)。對於包含在數據庫中的各種對象來說並非如此。 –