2017-06-08 14 views
3

は、だから私は、同じ名前Postgresのユーザーがいずれか、またはパスワードなしでログインできる

postgres=# create role paperwork; 
postgres=# create database paperwork; 
postgres=# grant all privileges on database paperwork to paperwork; 
postgres=# ALTER ROLE paperwork WITH LOGIN; 
postgres=# ALTER ROLE paperwork WITH PASSWORD 'paperwork'; 

のデータベースと「事務処理」と呼ばれるユーザーを設定するしかし、それはまだ私がパスワードなしの書類としてログインすることができます

[###@EMOO modules]$ psql --username=paperwork --host=localhost 
psql (9.6.3) 
Type "help" for help. 

paperwork=> \q 

と私はパスワードを使用するように強制するとき、それは空白のパスワードを含む任意のパスワードを受け付けます。

[###@EMOO modules]$ psql --username=paperwork --host=localhost --password 
Password for user paperwork: 
psql (9.6.3) 
Type "help" for help. 

W私はpgadmin3を開き、暗号化されたパスワードを持っているような "書類"ユーザをクリックします。私はpgadmin3を開くとき

-- Role: paperwork 

-- DROP ROLE paperwork; 

CREATE ROLE paperwork LOGIN 
    ENCRYPTED PASSWORD 'md585ff97314dbeb9953b989fd363a8e96f' 
    NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 

また、Postgresのパスワードの入力を要求しますが、再度、postgresのパスワードのために何を受け入れます。 (私はpostgresをインストールしたときにpostgresパスワードを設定することを覚えています)ログインするには正しいパスワードが必要なので、どうすればいいですか?それとも、私が完全に欠けているという状況がありますか? 。 。 。リモートログインや何らかの不思議さのためだけにパスワードが必要です。ありがとう。

EDIT:私は/usr/share/postgresql/pg_hba.confを持っていませんでした(実際には私は "locate"コマンドでsudoを使用していなかったので実際に見つかりませんでした) 私は、サンプルファイルから1を作成しました:

ここからこのアイデアを得た/usr/share/postgresql/pg_hba.conf.sample:http://blog.mattsch.com/2012/05/19/postgresql-accepts-any-or-no-password-when-connecting/ 私はそれがMD5認証を持って作ってみましたが、私はまだ同じ問題を抱えています。私が試したことは、私は、その後のPostgreSQLを再起動しますが、まだ同じ問題を抱えている

@[email protected] 

# TYPE DATABASE  USER   ADDRESS     METHOD 

@[email protected]# "local" is for Unix domain socket connections only 
@[email protected] all    all          @[email protected] 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 

@[email protected]#local replication  @[email protected] @[email protected] 
#host replication  @[email protected]  127.0.0.1/32 @[email protected] 
#host replication  @[email protected]  ::1/128 @[email protected] 

/usr/share/postgresql/pg_hba.confファイルから以下の通りです。

編集:ありがとうございますAbelisto。その "show config_file"コマンド(pgsqlでログインした後)は私を正しい軌道に乗せます。私のLinuxユーザのコマンドラインから実行される "locate pg_hba.conf"には、postgresディレクトリにある実際の設定ファイルを見つける権限がありませんでした:/ var/lib/postgres/data /ユーザ "書類それを作るためにこれらのラインに/var/lib/postgres/data/pg_hba.confに 『MD5『に』信頼」を私が変更した後、今間違ったパスワードとして拒否されます』:

# TYPE DATABASE  USER   ADDRESS     METHOD 

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

は、おそらくに解決マークしますちょうどカップルの事をテストしたい。

+1

を提供していない場合

sudo systemctl restart postgresql 

5はpostgresとしてログインし、何が必要ユーザーのパスワード変更は、ユーザーが拒否されます'psql'はあなたの設定がどこにあるかを見つける' show config_file; 'を実行します。 – Abelisto

+0

Stack Overflowは、プログラミングと開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)または[データベース管理者スタックエクスチェンジ](http://dba.stackexchange.com/)がより良い場所になるでしょう。 – jww

+0

ああ、申し訳ありませんが、どうすればいいですか?私はここにこれを残すのですか?または私はそれを削除し、データベーススタック交換で再投稿すべきですか? – Zendasi

答えて

1

私の原点のポストのためのTLDR:

[###@EMOO ~]$ psql -U postgres 
psql (9.6.3) 
Type "help" for help. 

postgres=# ALTER ROLE postgres WITH PASSWORD 'postgres password'; 

2は、あなたが

sudo updatedb 
sudo locate pg_hba.conf 

3置き換えるにはpg_hba.conf見つける:

1は、あなたが知っている何かにpostgresのパスワードを設定していることを確認してくださいあなたのpg_hbaで "md5"と "信頼"してください。confに

4リスタートにpostgresql:彼らは右のパスワード

psql -U postgres 
関連する問題