Comunidad Gambas-es
Aplicacion contra base de datos remota - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forumdisplay.php?fid=3)
+--- Foro: Bases de Datos (https://gambas-es.org/forumdisplay.php?fid=6)
+--- Tema: Aplicacion contra base de datos remota (/showthread.php?tid=903)



Aplicacion contra base de datos remota - tincho - 07-06-2022

Hola Amigos.
Partiendo de la base de un programa hecho con gambas que opera contra una base de datos central
Desde su experiencia con MySQL u otro motor de bases datos similar
¿Como suelen gestionar los usuarios? con una tabla de usuarios en donde ahí esta los permisos de cada usuario y luego todas las aplicaciones usan internamente el mismo usuario para "hablar" con la base de datos o crean cada usuario del programa también como usuario del motor de bases de datos?
¿Es conveniente usar un solo usuario que se comunique con la base?


RE: Aplicacion contra base de datos remota - omoreno - 07-06-2022

Hola Tincho.
 
Tengo poca experiencia en Gambas, pero creo que la pregunta aplica para cualquier lenguaje.
Según mi experiencia el 99% las aplicaciones que he visto (propias y ajenas) usan un solo usuario de base de datos para luego validar contra una o varias tablas de usuarios.
 
Tu pregunta es la que siempre hice cuando desarrolle aplicaciones a los clientes que ya tenían su personal administrador de base de datos.
 
Si el cliente no tiene personal administrador entonces debes decidir según tu aplicación.
 
En mi caso me acostumbre a gestionar con un solo usuario para luego validar a una o mas tablas de usuarios del programa.
 
Supongo que si utilizas usuarios de base de datos, entonces el personal administrador de base de datos o tu aplicación tiene que ajustar los permisos a todos los objetos de la base por usuario y luego tu aplicación validara cada modulo según los permisos del usuario contra los objetos que el modulo utiliza…
 
Saludos.


RE: Aplicacion contra base de datos remota - tincho - 07-06-2022

(07-06-2022, 18:46)omoreno escribió:  Según mi experiencia el 99% las aplicaciones que he visto (propias y ajenas) usan un solo usuario de base de datos para luego validar contra una o varias tablas de usuarios.
Si, yo también me encontré este modelo de trabajo en todos lados, gracias por tu opinión.
Voy a ir por este camino, ya que validar usuarios constantemente contra el motor de bases de datos seria difícil de mantener, no así agregándolos a una tabla en la que guardaría un hash generado con una contraseña que cada usuario defina.


RE: Aplicacion contra base de datos remota - Shordi - 07-06-2022

Yo siempre he usado ese sistema: un usuario único en la base de datos, una tabla de usuarios con el hash de la contraseña (o similar), una tabla de usuarios-entornos, con los permisos de cada usuario en cada programa de la empresa y una tabla de permisos de acceso con la automatización de las unidades sshfs que conecta cada usuario según los mencionados permisos.
Luego cada programa de la empresa tiene en su interior el mecanismo de ajuste de los permisos correspondientes y así el usuario puede acceder a los menús, y botones de acción a que tenga derecho sin más problemas.
No sé si te interesa más detalles. En la malograda y anticuada versión del Intriga que coloqué en gitlab está más o menos todo... aunque desde entonces he actualizado un montón de cosas (estoy colaborando otra vez con mi ex-empresa para actualizar todos los programas y el primero con el que estoy trabajando es el Intriga)


RE: Aplicacion contra base de datos remota - tincho - 07-06-2022

(07-06-2022, 20:19)Shordi escribió:  un usuario único en la base de datos
Ok.
(07-06-2022, 20:19)Shordi escribió:  una tabla de usuarios con el hash de la contraseña (o similar)
En mi caso se llama "users"
(07-06-2022, 20:19)Shordi escribió:  una tabla de usuarios-entornos, con los permisos de cada usuario en cada programa de la empresa
Puede que lo implemente en el futuro, de momento cada usuario tiene un nivel de permisos de 1 a 5 donde 5 es el administrador y 1 el usuario corriente. Luego 2,3, y 4 son usuarios avanzados, supervisores (del programa) etc.
(07-06-2022, 20:19)Shordi escribió:  una tabla de permisos de acceso con la automatización de las unidades sshfs que conecta cada usuario según los mencionados permisos.
Esta también me gusta y deseo implementarla en un futuro próximo
(07-06-2022, 20:19)Shordi escribió:  Luego cada programa de la empresa tiene en su interior el mecanismo de ajuste de los permisos correspondientes y así el usuario puede acceder a los menús, y botones de acción a que tenga derecho sin más problemas.
Si, esto también lo haré así, cada usuario podrá hacer y ver cosas de acuerdo a su nivel de acceso
(07-06-2022, 20:19)Shordi escribió:  No sé si te interesa más detalles. En la malograda y anticuada versión del Intriga que coloqué en gitlab está más o menos todo... aunque desde entonces he actualizado un montón de cosas
Si la otra oportunidad había estudiado bastante tu programa cuando hice Giskard como sustituto de Control (que finalmente no prospero), así que tengo (creo) todavía una idea general en la mente. De hecho actualmente uso algunas ideas que tome de tus programas, por ejemplo lo de montar SSHFS. Seguramente mas adelante vuelva a estudiarlo.
(07-06-2022, 20:19)Shordi escribió:  (estoy colaborando otra vez con mi ex-empresa para actualizar todos los programas y el primero con el que estoy trabajando es el Intriga)
Que bien, me alegro por ti ya que es tu creación y seguramente sientas una gran satisfacción al mantener a punto el sistema.