指定したデータベースにのみアクセスできるユーザーを作成したい。ただし、すべての許可が必要です。 Ubuntu 14.04でPostgresql 9.5を使用しています。まず最初に、新しいユーザーを作成します。
$createuser --interactive joe
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
次に、所有者joeで新しいデータベースを作成します。
$Sudo -u postgres psql
$CREATE DATABASE myDB OWNER joe;
$GRANT ALL ON DATABASE myDB TO joe;
その後、ユーザーmyeに接続して、データベースmyDBに接続しようとします。
$psql myDB -U joe
psql: FATAL: Peer authentication failed for user "joe"
次に何をしなければなりませんか?
ルートアクセスで/etc/postgresql/9.5/main/pg_hba.conf
を開きます
Sudo nano /etc/postgresql/9.5/main/pg_hba.conf
これらの行のpeer
をmd5
に変更します。
変更する前に
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
Host all all 127.0.0.1/32 peer
# IPv6 local connections:
Host all all ::1/128 peer
変更後
# "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
を押してファイルを保存します Ctrl-O。 nanoを終了します Ctrl-X
を使用してpostgresqlを再起動します
Sudo service postgresql restart