我想設置我的本地postgresql,所以它沒有密碼。我明白,這必須在pg_hba.conf
文件中完成,並承認該文件我必須是postgres
用戶。但要成爲postgres
用戶,我必須登錄su postgres
並輸入我沒有的密碼。在OSX中更改我的postgresql密碼?
任何解決方案(我在OSX上)?
我想設置我的本地postgresql,所以它沒有密碼。我明白,這必須在pg_hba.conf
文件中完成,並承認該文件我必須是postgres
用戶。但要成爲postgres
用戶,我必須登錄su postgres
並輸入我沒有的密碼。在OSX中更改我的postgresql密碼?
任何解決方案(我在OSX上)?
您在混淆關於安全模型的幾個不同概念。
有一個postgres
操作系統用戶,PostgreSQL服務器爲了隔離它的數據文件並在出現安全漏洞或應用程序錯誤時限制損壞而運行PostgreSQL服務器。爲安全起見,PostgreSQL不會以root
的身份運行。此用戶通常沒有密碼,但您可以通過使用sudo
的root帳戶更改爲此密碼 - 您可以通過sudo
向此用戶提供類似sudo -i -u postgres
的內容。
還有一個postgres
數據庫用戶,默認數據庫超級用戶。此用戶默認通常沒有密碼,但pg_hba.conf
允許postgres
操作系統用戶使用peer
身份驗證連接爲postgres
PostgreSQL用戶。
如果你想使你的postgres
數據庫用戶使用一個密碼,您可以更改配置,所以你可以psql -U postgres
來自任何系統的用戶帳號:
ALTER USER postgres WITH ENCRYPTED PASSWORD 'blahblah';
pg_hba.conf
(「HBA」是「基於主機的身份驗證」)使用md5
身份驗證的local
和host
連接。同樣,如果你想允許任何系統用戶以任何數據庫用戶連接不使用密碼,則必須修改pg_hba.conf
並設置trust
爲local
認證模式和host
連接類型。請僅使用trust
驗證進行測試。
要了解更多信息,請參閱the client authentication chapter in the PostgreSQL documentation。
感謝您的解釋。但是當我執行'psql -U postgres'命令時,我被要求輸入密碼......這可能是什麼? (我唯一想要的就是訪問'pg_hba.conf'文件來改變它。) – allegutta
@allegutta這表明你的'pg_hba.conf'設置爲'local'用戶的'md5'認證。如果你想禁用,你可以將其設置爲「信任」。要編輯文件,您需要使用'sudo -u postgres -i'成爲'postgres' * system *用戶。如果你的系統用戶帳號有密碼(解鎖你的屏幕等),它會提示你輸入密碼。您不要通過'psql'編輯'pg_hba.conf',而是直接使用操作系統工具。 –
是的,謝謝你的幫助。我設法改變了我的'pg_hba.conf'文件! :) – allegutta