Я установил PostgreSQL 8.4 на моем CentOS-сервере и подключился к пользователю root из оболочки и получил доступ к оболочке PostgreSQL.
Я создал базу данных и пользователя в PostgreSQL.
При попытке подключения из моего PHP-скрипта он показывает, что аутентификация не удалась.
Как создать нового пользователя и как предоставить им разрешения для конкретной БД?
Из CLI:
$ su - postgres $ psql template1 template1=# CREATE USER tester WITH PASSWORD 'test_password'; template1=# GRANT ALL PRIVILEGES ON DATABASE "test_database" to tester; template1=# \q
PHP (как проверено на localhost, работает как и ожидалось):
$connString = 'port=5432 dbname=test_database user=tester password=test_password'; $connHandler = pg_connect($connString); echo 'Connected to '.pg_dbname($connHandler);
Создайте пользователя с паролем:
http://www.postgresql.org/docs/current/static/sql-createuser.html
CREATE USER name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | CONNECTION LIMIT connlimit | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid
Затем предоставите права пользователя в конкретной базе данных:
http://www.postgresql.org/docs/current/static/sql-grant.html
Пример :
grant all privileges on database db_name to someuser;