2
即使密碼錯誤,我也可以連接到本地Postgres數據庫。這是我如何創建一個角色和數據庫(我在Mac OSX上在Postgres 9.3):即使使用錯誤的密碼,我也可以在Rails上訪問postgres數據庫
psql postgres
CREATE ROLE role_name WITH ENCRYPTED PASSWORD 'role_password' NOSUPERUSER NOCREATEROLE NOCREATEDB LOGIN;
CREATE DATABASE db_name OWNER role_name;
\q
所以,當我配置on Rails的我database.yml
文件,使用以下:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: db_name
username: role_name
password: this_is_a_wrong_password_ha_ha
並啓動服務器(rails s
),一切工作正常:我可以創建具有遷移表和創建/讀取/更新/刪除其中的數據表。
我甚至可以做到這一點,而無需提供任何角色和/或密碼。
如果角色名稱和角色密碼不正確,我該如何阻止對數據庫的訪問?我錯在哪裏?謝謝
是的@maxd,你是對的。我的pg_hba.conf與你的答案相同。我怎樣才能防止這一點? (我的意思是特定數據庫只有特定用戶) – htaidirt 2015-03-02 16:23:14
只需[調整此配置](http://www.postgresql.org/docs/9.4/static/auth-pg-hba-conf.html)並重新啓動Postgres。 – 2015-03-02 16:25:15
重新加載是足夠好的,您不必爲這種類型的更改重新啓動數據庫。 – 2015-03-02 17:18:05