2016-04-25 10 views
1

私はRuby on Railsを使い始めています。私はHello Worldアプリケーションを構築しており、私はPostgreSQLを使用しています。私はアプリを作成するには、次のコマンドを使用:私のRuby on Railsアプリケーションはパスワードなしでデータベースにアクセスできますか?

rails new rails-hw -d postgresql 

私はcreateuser -s pguserを使用してデータベース・ユーザーを作成し、私はパスワードを設定します。

私が作成したユーザーのユーザー名とパスワードを使用して、config/database.ymlの開発セクションを編集しました。しかし、database.ymlファイルのパスワードに使用するものは問題ではなく、私のアプリケーションは常にデータベース内のデータにアクセスできます。パスワードを無視するのはなぜですか?

+0

、あなたはdatabase.yml' 'からパスワードを削除することができます。 –

答えて

1

現在のPostgresインストールが、localhostからの接続を許可するように設定されているためです。

は、あなたがこのような何か見つけるあなたpg_hba.conf最も可能性の高いチェック:「127.0.0.1からのすべてのPostgresユーザとデータベースのためのすべての接続を許可する」基本的に言う

# TYPE DATABASE USER  IP-ADDRESS IP-MASK    METHOD 
host all   all   127.0.0.1  255.255.255.255  trust 

詳しい詳細はドキュメントに記載されています。実際にはhttp://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html(例20-1を参照)

0

pg_hba.confをご覧ください。

# Database administrative login by Unix domain socket 
local all    all          trust 

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          trust 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

があり、それらのtrust方法を参照してください:それはおそらく、ローカルユーザ(同じマシンからの接続)のための特別な処理が含まれているのだろうか?これはパスワードを必要としないものです。 documentationから:trust認証が指定されている場合

、PostgreSQLは、サーバに接続することができます誰もが、彼らは(も、スーパーユーザ名)を指定するどんなデータベース・ユーザー名でデータベースにアクセスすることを許可されていることを前提としています。もちろん、データベース列とユーザー列の制限が適用されます。このメソッドは、サーバーへの接続でオペレーティングシステムレベルの保護が適切な場合にのみ使用してください。

関連する問題