2016-05-08 7 views
0

Каков правильный способ настройки базы данных на новом сервере? В настоящее время я использую экземпляр EC2 с Ubuntu 14.04. Это то, что я сделал до сих пор:Как правильно настроить разрешения базы данных в 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 

Однако, когда я хочу, чтобы войти с " tester ', я получаю эту ошибку:

$ 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) ... Если Im not mistaken peer потребует такого же пользователя в ОС, в то время как md5 просто проверяет пароль –

+0

и btw, в чем вопрос? если вы соглашаетесь с безопасностью, установив md5 вместо peer для локальных соединений? то нет, u не –

+0

Это часть вопроса. Это лучший способ назначить нового пользователя для базы данных? Как вы можете видеть, я просто следил за различными учебниками, чтобы это сделать, но я прочитал варианты этой процедуры. –

ответ

1

http://postgresql.org/docs/current/static/auth-methods.html описывает различные методы auth, но в основном основной является создание пользователя в экземпляре postgres, установка пароля для него и настройка hba.conf для ваших нужд.

если вы создаете Os пользователя «тестер» и su к нему, вы можете подключиться к БД локально с «независимой» аутентификации