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);