Запускаем psql под пользователем postgres:
dbuser – имя пользователя,
dbpass – пароль пользователя dbuser. И говорим серверу PostgreSQL перечитать измененный конфиг pg_hba.conf:
Ссылки по теме:
1. PostgreSQL. Как создать базу данных и пользователя для нее.
su postgres -c psqlТеперь в консоли PostgreSQL вводим следующие команды:
create database dbname with encoding='UNICODE'; create user dbuser with password 'dbpass'; grant all privileges on database dbname to dbuser;А также не забываем дать доступ новому пользователю к серверу, для этого в файле /var/lib/pgsql/data/pg_hba.conf:
# For dbuser: host dbname dbuser 127.0.0.1/32 md5 local dbname dbuser md5Где dbname – имя базы данных,
dbuser – имя пользователя,
dbpass – пароль пользователя dbuser. И говорим серверу PostgreSQL перечитать измененный конфиг pg_hba.conf:
root@Linux# service postgresql reloadСкрипт для удобства:
#!/bin/sh
PGPORT=
echo 'Input dbname: '
read dbname
dbuser=${dbuser:-$dbname}
echo "Input dbuser: [$dbuser]" # Generate by dbname.
randpass=$(tr -cd A-Za-z < /dev/urandom | head -c8)
echo "Input dbpass [$randpass]:" # Generate random.
read dbpass
dbpass=${dbpass:-$randpass}
# Facepalm centos... Need fill path to binary psql: /usr/pgsql-9.3/bin/psql
su - postgres -c "/usr/pgsql-9.3/bin/psql --dbname=$DB --port=$PGPORT <<_EOF
\x
CREATE DATABASE $dbname WITH ENCODING='UNICODE';
CREATE USER $dbuser WITH PASSWORD '$dbpass';
GRANT ALL PRIVILEGES ON DATABASE $dbname TO $dbuser;
_EOF
"
# TODO: check error code here.
# Do backup modified cfg files.
cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf_`date +%s`
PGPORT=${PGPORT:-5432}
[ -n "$dbname" -a -n "$dbuser" ] && cat <<-_EOF >>/var/lib/pgsql/data/pg_hba.conf
# For $dbuser, generated at `date`:
host $dbname $dbuser 127.0.0.1/32 md5
local $dbname $dbuser md5
_EOF
# Do reload.
service postgresql-9.3 reload
Ссылки по теме:
1. PostgreSQL. Как создать базу данных и пользователя для нее.
Комментариев нет:
Отправить комментарий