Enlaces
Esta en:

documentos
Arriba
Bind-9
Bind-8
Ad+bind
Dhcp
Kdephp
Shell
Trucos
Php
Documentos
Cuestiones php
Fedora
Legal
W2000 xp
COMOS
Errores dns

Re: [PHP-ES] Recomendación sobre uso de usuario y password para conexión con la base datos.

Write haof XML files: Satyam <Satyam_at_satyam.com.ar>
Fecha: Mon, 1 Oct 2007 13:00:02 +0200

----- Original Message -----
Subject: Re: [PHP-ES] Recomendación sobre uso de usuario y password para
conexión con la base datos.

>
> Hola Gerardo.
>
> Entiendo lo que dices, y es lo que he estado haciendo hasta ahora,
> pero me han surgido dudas.
>
> Haciendo como tu dices, que es igual que yo lo he hecho hasta ahora,
> tienes en algún script de php donde recoges el host, basedatos, user,
> password para usar la función pg_connect o mysql_connect (dependiendo
> el caso). Realmente eso no me gusta mucho, pues si por lo que sea
> alguien tiene acceso a dicho archivo la hemos liado.
>

Yo, normalmente pongo un breve archivo PHP con los datos de conexión en
algún lugar fuera de la rama pública del servidor de tal manera que no esté
accesible desde fuera.

Digamos que si tu web está en:

/usr/home/pepe/www

mis scripts de conexión a la base de datos están en:

/usr/home/pepe/scripts

Dado que para la web, el /usr/home/pepe/www es el 'root' y no puede ir más
arriba, no hay forma de que puedan llegar al directorio de los scripts.

Estos breves scripts de conexión devuelven una conexión ya establecida. Los
datos de conexión están como literales y no como variables que puedan ser
leídas por las otras aplicaciones, concretamente, uno de tales scripts es
así:

     mysql_connect('localhost', 'root', '') or die("Could not connect : " .
mysql_error());
     mysql_select_db('prueba') or die("Could not Select database: " .
mysql_error());

Como ves, los datos nunca salen de ese script y lo único que queda es una
conexión ya establecida, no hay ni variables ni constantes globales que
trasciendan al resto del script.

Por otra parte, te llamo la atención sobre un problema de rendimiento que
tendrás teniendo distintos usuarios. Cuando el sistema lo soporta, las
conexiones contra la base de datos se reutilizan. Al cerrarse una conexión,
el servidor la manda a un 'pool' de conexiones disponibles para que otra
transacción la pueda reutilizar. Para que esto pueda ocurrir, los datos de
conexión deben ser los mismos. Entre ellos está el nombre de usuario. Nota
que la misma función mysql_connect te pide, justamente, el servidor y el
nombre de usuario, pues eso le permite determinar si puede usar una del
pool. Distintos usuarios requieren distintas conexiones, pues cada usuario
puede tener permisos distintos. Eso hace que dos usuarios distintos no
puedan reutilizar la misma conexión del 'pool' de conexiones, si el sistema
mantuviera tal pool. Si todos los usuarios acceden a la base de datos con
el mismo nombre de usuario, todos ellos pueden usar una y otra vez las
mismas conexiones del pool.

Satyam

> Había pensado que usando los usuarios del sistema (postgres) podría
> ser mas apropiado, pues de ese modo no lo pones en ningún script y
> puedes establecer roles y permisos a determinadas tablas. Es sólo una
> idea.
> --
> Saludos.
> Pablo.
>

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Nearby lun oct 01 2007 - 18:23:03 CEST

Este archivo fue generado por hypermail 2.2.0 : mié nov 07 2007 - 20:55:37 CET


Página Principal
Google

Web
dns.bdat.net

Visita nuestro proveedor:
www.bdat.net

Publicidad:

Impresenteibols:Humor Jazz, música en vivo