Имя, которое вы указываете в user:
- это имя, используемое для входа в систему;вам не нужно, чтобы это было системным пользователем, если вы не хотите.Дело в том, что когда база данных инициализирована , ее владельцем (как правило) задается имя пользователя, которое выполнило db_init
, что может варьироваться.Таким образом, имя пользователя хоста и имя пользователя в базе данных, как правило, слабо связаны.
С точки зрения безопасности рекомендуется запускать init_db
от имени пользователя postgres
, а затем явно GRANT
разрешения или изменять владельца базы данных template1
(и пароль) набыть тем, кого вы хотите, чтобы ваши приложения использовали.Базы данных (точнее схемы) будут использовать настройки template1
при их создании.
Практически, на серверах, доступных через Интернет, мне нравится иметь (системное) имя пользователя с ограниченным доступом (мало или нет sudo
), у которого то же имя , что и у пользователя базы данных.Установите имя и используйте его везде.Это упрощает копирование баз данных, настройку и т. Д.В противном случае вы получите ошибки «role foo not found».
Rails позволяет очень легко приступить к разработке, и это хорошо.Создание небезопасной производственной среды не должно быть слишком простым: -)