tutorial instancia example crear php database postgresql authentication connection

php - instancia - psql example



¿Cómo crear usuario para un db en postgresql? (2)

Instalé PostgreSQL 8.4 en mi servidor CentOS y me conecté al usuario raíz desde el shell y accedí al shell de PostgreSQL.

Creé la base de datos y el usuario en PostgreSQL.

Al intentar conectarme desde mi script PHP, me muestra que la autenticación falló.

¿Cómo creo un nuevo usuario y cómo otorgarles permisos para un determinado DB?


Crea el usuario con una contraseña:

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

A continuación, conceda los derechos de usuario en una base de datos específica:

http://www.postgresql.org/docs/current/static/sql-grant.html

Ejemplo:

grant all privileges on database db_name to someuser;


De 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 (como se probó en localhost, funciona como se esperaba):

$connString = ''port=5432 dbname=test_database user=tester password=test_password''; $connHandler = pg_connect($connString); echo ''Connected to ''.pg_dbname($connHandler);