Re: [pgsql-ayuda] Como acceder Postgres con PHP

From: Bolo Lacertus <lacertus(at)servidor(dot)unam(dot)mx>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [pgsql-ayuda] Como acceder Postgres con PHP
Date: 2000-12-20 21:04:02
Message-ID: 3A411EC2.F984D13D@servidor.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Saludos!

A la mejor no estamos muy claros en algo que es muy importante as�que
dejenme repetirlo por si las pulgas: Postgres usa una serie de usuarios
que solo � conoce y usa, en lo que Apache controla el acceso a los
recursos por los usuarios de UNIX (Apache corre con los permisos de un
usuario y si ese usuario no tiene autorizaci� de hacer algo, Apache
tampoco), de modo que independientemente de que el usuario con el que
corra Apache sea el adecuado, tienes que ver los usuarios creados en
Postgres con los que iniciar� tus conecci�es de PHP a la base de datos
y que son INDEPENDIENTES del usuario con que Apache corra.

"Alejandro Rivadeneira B." wrote:
> Seniors, tengo Red Hat 7, Apache 1.3, Postgres 7, Php 4.
> 1) Se que debo crear un usuario especial en Postgres para acceder
> via Apache.... pero cual de los siguientes ? (o ambos ?):
> a) nobody
> b) apache (para Red Hat 7 ??)

Recomiendo b) apache, y esto se hace mas evidente en los otros puntos,
b�icamente es til defierenciar lo que puede hacer alguien mediante web
y lo que puede hacer en "consola".

> 2) Estos usuarios deben, o no deben hacer lo que sigue ??
> a) Crear bases de datos.
> b) Crear nuevos usuarios y/o dar accesos a usuarios.

Salvo sistemas extraordinarios, estas tareas suelen estar a cargo de un
subsistema con una seguridad mucho mas estricta que el servicio
convencional e incluso que no se presta por Web a toda la cobertura de
usuarios (en el caso de crear bases de datos, no creo que deba
permitirse en general para nadie por Web).
De modo que para el sistema de servicio general (y su usuario) es un
formal no. Puedes hacer otro usuario, que se someta a criterios mas
ceveros de autentificaci� por ejemplo para crear usuarios (aunque a
menudo los usuarios de la base de datos no son los usuarios que atiende
el sistema, por lo que no suele ser necesario).

> 3) La base de datos que quiero acceder debe ser creada con el
> usuario nobody o apache ?

No debes crearla con ninguno de ellos, para tener una base de datos se
recomienda tener al menos tres y en tu caso cuatro usuarios que son:
DBA - El administrador de Postgres, todo lo puede
DBO - El due� de la base de datos, puede hacer lo que quiera con ella
Desarrollo - El usuario con que desarrollas, similar a DBO pero no puede
modificar la estructura de la BD, aunque puede hacer lo que quiera con
la informaci� y tiene acceso directo a ella.
Web - El usuario con el que se conectara apache (tu pensabas ponerle
"apache") en este restringes todo lo que puedas para evitar que un
desliz de seguridad de tu sistema web pueda tener efectos desastrosos en
tu sistema.

La base de datos es creada con DBA, pero la estructura (tablas, indices,
etc.) es creada por DBO, luego, la informaci� al pone el de Desarrollo
(y te quedas trabajando con el) y dejas a Web solo para que sea el usado
por el "pblico" mediante tu servicio internet.

> 4) El codigo PHP para acceder la base de datos de Postgres ..
> donde debe estar ?
> dentro del directorio del usuario nobody o apache, o en otro
> directorio ?

Bueno, para que sea funcional debe ser visible como documento HTML por
Apache, se recomienda que lo pongas bajo tu htdocs pero en realidad no
hay mayores restricciones al respecto, solo asegurate de que sean los
usuarios del sistema correctos los que tengan permisos para verlo. Aqu�alluda mucho tener un grupo "web" en UNIX de modo que puedes hacer que
algunos usuarios pertenezcan al mismo grupo al que pertenezca el usuario
bajo el que correo Apache y con permisos de grupo controles quien puede
hacer que cosa.

> 5) Tienen ustedes algun trozo de codigo Php donde se vea como
> abren una tabla de B.datos Postgres ? .... para poder entender
> como se accede.

Ahi si te quedo mal, soy perlero de coraz�, pero me imagino que algunos
otros si lo tienen, no olvides que por lo regular en al cadena de
conecci� es necesario poner el login y el password del usuario postgres
que estar�usando tu script PHP.

Daniel Sol
--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo(at)tlali(dot)iztacala(dot)unam(dot)mx
text : unsubscribe pgsql-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jose Muro 2000-12-21 10:36:26 Re: [pgsql-ayuda] Problemas con VIEWS
Previous Message lrgallardo 2000-12-20 17:32:23 [pgsql-ayuda] Problemas con VIEWS