Autor Tema: Postgres. Limitar conexiones. por usuario, como ??  (Leído 8711 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado edinson

  • Sv Jr.
  • **
  • Mensajes: 69
  • Think in bigger, start in small...
Postgres. Limitar conexiones. por usuario, como ??
« : abril 03, 2007, 10:14:41 am »
Quiero una pequeña ayuda con el manejo de usuarios ya sea desde PHP o Postgres: talvez hay un archivo de configuración o algún método que no permita que dos usuarios utilicen el mismo usuario y contraseña.

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #1 : abril 03, 2007, 06:29:28 pm »
A que te referis con que dos usuarios no utilicen el mismo usuario y la misma contraseña ?? , te referis a que no se puedan conectar a la base de datos si ya existe una conexion previamente o que ??

O te referis a por ejemplo un software en el que si ya hay un usuario utilizando la cuenta ya no pueda entrar nadie mas a la aplicacion ?

Si es en una aplicacion a la que queres restringir a solo un usuario, tendrias que manejar las sesiones desde la base de datos con php y ahi hacer tus revisiones.

Desconectado fermarroquin

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3503
    • Fernando Marroquín
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #2 : abril 03, 2007, 06:36:32 pm »
Me imágino que lo que quiere es que si un usuario ya está conectado con x usuario, no se pueda conectar otro con ese usuario en el mismo momento que ya hay uno conectado.  :thumbsup:
Salvadoreño. Arquitecto. Nocturno. Apasionado. Geek. Hago política. Oveja negra. Dejando la Coca-Cola. Tomo fotos. Astronauta y saxofonista frustrado. En Twitter soy @FerMarroquin.

Desconectado edinson

  • Sv Jr.
  • **
  • Mensajes: 69
  • Think in bigger, start in small...
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #3 : abril 06, 2007, 11:11:12 pm »
Si es en una aplicacion a la que queres restringir a solo un usuario, tendrias que manejar las sesiones desde la base de datos con php y ahi hacer tus revisiones.

Pues si, a eso me refiero que es una aplicación que solo quiero que entre un usuario por máquina, pero con diferente login y contraseña, pero la verdad he estado revisando en la web y no he encontrado nada con lo que me pueda orientar, asi que si alguien me puede dar una ayudita se lo agradeceré un montón  :sur:

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #4 : abril 06, 2007, 11:16:48 pm »
Pues si, a eso me refiero que es una aplicación que solo quiero que entre un usuario por máquina, pero con diferente login y contraseña, pero la verdad he estado revisando en la web y no he encontrado nada con lo que me pueda orientar, asi que si alguien me puede dar una ayudita se lo agradeceré un montón  :sur:

Pues mira, podrías hacer algo como esto.... Suponete... tenes tus tablas de usuarios:

Usuarios:
login      hash
mxgxw   887f987d88d8dd987d98d7d878d
rdoggsv  887f987d88d8dd9dd8d9s8ffsdfd
edinson   887f9gfdggdd8d9s8ffsdfd

Cada vez que un usuario se indentifique podes hacer una tabla de sesiones:

login     lastlogin                IP
mxgxw 11:13 06-04-2007   201.243.12.13

Y luego en tu programa verificar con un algoritmo mas o menos asi:

si <usuario> ha iniciado sesion desde la <ip> y la <ip> es la misma.
Permitir acceso
Si no.
Denegar Acceso


Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #5 : abril 07, 2007, 12:48:47 pm »
puesi pero aqui se te viene encima que tambien tenes que crear algo que borre las sesiones que ya fallecieron, y esto siempre te va a dar por ejemplo que si el usuario no le dio "cerrar sesion" , tenes que tener un tiempo de espera y esto te podria causar problemas , por ejemplo el promedio para que las sessiones sean cerradas en php es de unos 15 minutos , esto significaria unos 15 minutos que si alguien entro y no cerro la sesion no vas a poder utilizar la aplicacion.

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #6 : abril 07, 2007, 12:50:36 pm »
puesi pero aqui se te viene encima que tambien tenes que crear algo que borre las sesiones que ya fallecieron, y esto siempre te va a dar por ejemplo que si el usuario no le dio "cerrar sesion" , tenes que tener un tiempo de espera y esto te podria causar problemas , por ejemplo el promedio para que las sessiones sean cerradas en php es de unos 15 minutos , esto significaria unos 15 minutos que si alguien entro y no cerro la sesion no vas a poder utilizar la aplicacion.

Eso es sencillo rdogg...

Si te fijas la tabla tiene una entrada "lastlogin"..

Solo haces un chequeo en la funcion que revisa si la funcion esta iniciada..

si <esta logueado> y sesion > 15 min
{
  Borrar entrada de la tabla sesiones
  Denegar acceso.
}

No es necesario crear un proceso que chequee si ya expiraron las sesiones, solo se establece un limite de sesion y al momento de verificar el acceso se revisa si tiene permitido accesar. Eso es solo para las sesiones que dejan abiertas, para las que se cierran explicitamente se borra la entrada de la tabla sesiones.

Incluso, podes hacer una tabla como:

login     lastlogin        lastaccess        IP

Y podes hacer con lastaccess mantener vivas las sesiones en tanto haya actividad del usuario.

No es dificil de implementar y literalmente no son mas de 10 lineas de código.
« Última Modificación: abril 07, 2007, 12:52:40 pm por mxgxw »


Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #7 : abril 07, 2007, 12:55:27 pm »
pero tambien te le falta a la tabla algo que identifique con el sessionid , porque si solo pones uid , lastlogin , y IP , podrian llegar 2 con la misma ip.

Yo opino que hagas todo el codigo y nos lo mostres asi lo discutimos mejor  :D

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #8 : abril 07, 2007, 12:56:40 pm »
pero tambien te le falta a la tabla algo que identifique con el sessionid , porque si solo pones uid , lastlogin , y IP , podrian llegar 2 con la misma ip.

Yo opino que hagas todo el codigo y nos lo mostres asi lo discutimos mejor  :D

Eso es lo que no quería fksjahflakjfhalkfhlfkjas la weba...

Dame un rato pues y armo algo entendible.


Desconectado cecy

  • -<- SvPrincess ->-
  • MiembrosReales
  • *
  • Mensajes: 22
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #9 : abril 09, 2007, 10:54:42 am »
Hola, estoy trabajando en la misma aplicacion que edinson.
Creo que tenemos algo parecido a la tabla de sesiones que sugiere mxgxw. Tenemos una tabla de bitacora en la que se guarda la fecha-hora en la que entra cada usuario y desde la ip que entra, tambien se registra la fecha-hora, ip cuando sale de la aplicacion. Cada usuario tiene 30 minutos de sesion, y cada vez que se carga una pagina se comprueba que no se hayan terminado esos 30 minutos:
$Ahora=time();
$TiempoRestante=$Sesion-($Ahora-$UltimoAcceso);
if (!$UltimoAcceso || $TiempoRestante<0){
   echo "
      <script language='javascript'>
         parent.location.href='/';
         window.alert('Usted no tiene permiso para utilizar esta aplicación o su sesión expiró\\n".
         "Vuelva a introducir su nombre de usuario y contraseña.');
      </script>
   ";
   exit();        //  acabo la aplicacion
}
else{
   $UltimoAcceso=$Ahora;
   ...
}

Como ven, el lastlogin lo manejamos con variables de sesion ($UltimoAcceso). Podriamos consultar la bitacora para verificar que el usuario se logueado y si ha salido, pero si el usuario no cierra sesion, sino que solo cierra el navegador, no puedo saber    si esta activo o no, porque no creo que pueda consultar variables de otra sesion...
En fin no se si me explique bien, pero si nos pueden ayudar...

Desconectado fermarroquin

  • -^- Elite Silver -^-
  • The Communiter-
  • *
  • Mensajes: 3503
    • Fernando Marroquín
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #10 : abril 09, 2007, 11:11:04 am »
Y que pasa si la IP cambia? Osea...si es dinámica y cambia?  :phew:
Salvadoreño. Arquitecto. Nocturno. Apasionado. Geek. Hago política. Oveja negra. Dejando la Coca-Cola. Tomo fotos. Astronauta y saxofonista frustrado. En Twitter soy @FerMarroquin.

Desconectado edinson

  • Sv Jr.
  • **
  • Mensajes: 69
  • Think in bigger, start in small...
Re: Postgres. Limitar conexiones. por usuario, como ??
« Respuesta #11 : abril 09, 2007, 11:56:15 am »
Pues estamos trabajando con IP fija, no son por DHCP.