首先我是來自MySQL的PostgreSQL的新手。我剛剛從Fedora存儲庫安裝了PostgreSQL,並根據fedora wiki頁面創建postgres用戶,方法是使用postgres用戶並使用psql shell創建其角色。無法從php腳本訪問新安裝的PostgreSQL
# su - postgres
$ psql
> \password
然後,我創建了通過nginx的,這將創建一個測試數據庫,並填充它提供一個測試腳本。我試圖通過使用postgres用戶及其密碼通過同行認證登錄腳本,使用以下pdo dsn:
新的PDO('pgsql:user = postgres password = ******* ***');
然而,隨着SELinux的掙扎後,連接失敗說的對等身份驗證失敗,所以我看着PostgreSQL的日誌,發現:
交付的用戶名(Postgres的)和athenticated用戶名(阿帕奇) 不匹配。
因此,我可以推斷,擁有該正試圖訪問數據庫的過程中,用戶是真實被認證的用戶,所以我想我必須創建在數據庫apache用戶相應的角色。但爲什麼這樣做呢?這是一種安全措施嗎?有沒有辦法使用postgres角色或我綁定到apache角色?
好吧,我還有幾個問題:是否有比md5更安全的方法?使用apache用戶/角色安全嗎(因爲它是被認證的)?創建另一個UNIX用戶然後在DBMS中創建其角色是否安全? – arielnmz
@arielnmz對於本地環回md5很好。對於非回送,我強烈建議使用SSL。目前正在進行中的工作,希望能夠支持9.6,支持基於HMAC的基於多種算法的協商身份驗證。我建議爲每個應用程序創建一個新的PostgreSQL用戶並給它一個不同的密碼。不需要創建一個unix用戶,也不需要這樣做;這隻適用於'peer'認證。 –
謝謝,還有一個問題:同行認證是否安全?最理想的是哪一種最好的方法? – arielnmz