Linux

Postgres 初始設置和使用者登錄

  • August 19, 2019

完全公開,postgres 新手和 linux 新手。我無法理解 postgresql 的使用者管理方面。我使用安裝在基於 Ubuntu 19.04 的作業系統上

sudo apt update sudo apt install postgresql postgresql-contrib

我已經能夠切換到預設使用者postgres,並且可以在其他命令中成功呼叫 psql。當嘗試通過 pgadminIII 連接時,當我使用相同的使用者名時,系統會提示我輸入密碼。幾次搜尋表明您應該可以將其留空。我收到一條錯誤消息,指出未提供密碼。

此外,我想將自己的使用者名設為管理員並使用我的 linux 密碼。我想這將類似於 microsoft sql 上的 windows authentiaction。在搜尋網際網路後,我似乎需要做的就是將createuser *MyNameHere*其聲明為超級使用者。但是,當嘗試連接表單命令行時,它的行為就像應該還有一個與我的使用者命名相同的數據庫。其次,當使用 pgadmin 時,它會主動拒絕我的憑據。

我想我的問題是這樣的:

有人可以向我解釋角色/使用者名的基本概念以及它們與 linux 使用者名的關係嗎?其次,上面出了什麼問題。

當嘗試通過 pgadminIII 連接時,當我使用相同的使用者名時,系統會提示我輸入密碼。

pgAdminIII 可能通過 TCP 連接(與 unix 域套接字相反),因此受 pg_hba.conf 中的“主機*”行的規則的約束,而不是“本地”行。如果該行說需要密碼,那麼它會要求輸入密碼——即使實際上沒有為使用者分配密碼。伺服器日誌中應該有一條消息更詳細地描述這種情況。詳細資訊不會發送給(失敗的)客戶端,以避免洩露敏感資訊。

另外,我想將自己的使用者名設為管理員並使用我的 linux 密碼

聽起來您可能需要PAM身份驗證(或者可能是 GSSAPI 或 LDAP)。但是要使用這些,您必須更改您的 linux 登錄系統,以便它也使用其中之一,因為我認為預設情況下它們中的任何一個都沒有配置為執行此操作。您還可以使用對等身份驗證,它不需要顯式輸入密碼,它只是使用您作為本地 Linux 使用者(可能確實需要密碼)登錄的事實來驗證 PostgreSQL。或者您可以採取簡單的方法,只需將您的 PostgreSQL 密碼設置為與您的 linux 密碼相同,然後手動保持它們同步。

但是,當嘗試連接表單命令行時,它的行為就像應該還有一個與我的使用者命名相同的數據庫。

是的,如果您不指定數據庫名稱,就會發生這種情況——它假定您要連接到與使用者同名的數據庫。如果你想連接到不同的數據庫,那麼只需指定它。

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