2016-05-08 97 views
0

在新服務器中建立數據庫的正確方法是什麼?我目前在Ubuntu 14.04上使用EC2實例。這是我迄今所做的:如何在postgresql中正確配置數據庫權限

首先install PostgreSQL的

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list' 
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add - 
$ sudo apt-get update 
$ sudo apt-get install postgresql postgresql-contrib 

在此基礎上answer,我執行以下命令:

$ su - postgres # or sudo -u postgres -i 
$ psql template1 
template1=# CREATE USER tester WITH PASSWORD 'test_password'; 
template1=# GRANT ALL PRIVILEGES ON DATABASE "test_database" to tester; 
template1=# \q 

然而,當我想登錄「測試儀',我得到這個錯誤:

$ psql -U tester test_database 
psql: FATAL: Peer authentication failed for user "tester" 

Accordin克至的文件,我需要改變pg_hba.conf文件:

$ sudo vi /etc/postgresql/9.5/main/pg_hba.conf 

,並更改以下行:

# "local" is for Unix domain socket connections only 
local all all peer 

使用「MD5」,而不是「同行」。更改該文件後,需要重新啓動服務器:

sudo service postgresql restart 

這樣,我終於能夠連接到數據庫。但是,由於我不瞭解其中的一些步驟,我仍然想知道是否有更好的方法來實現這一點,以及是否會損害流程中數據庫的安全性。

+1

你沒有重新啓動本地數據庫。只是重新加載(以獲取hba.conf中的更改)...如果我沒有錯誤的peer會在操作系統中需要相同的用戶,而md5只是檢查密碼 –

+0

和btw是什麼問題?如果通過爲本地連接設置md5而不是peer來降低安全性?那麼不,你不要 –

+0

這是問題的一部分。這是爲數據庫分配新用戶的最佳方式嗎?正如你所看到的,我只是遵循不同的教程來完成這個過程,但我已經閱讀了這個過程的變體。 –

回答

1

http://postgresql.org/docs/current/static/auth-methods.html描述了不同的身份驗證方法,但基本上最主要的是在Postgres的情況下創建用戶,設置他的密碼,併爲您的需求配置hba.conf。

如果創建OS用戶「測試」和su它,您可以連接到與「同行」身份驗證

相關問題