PDA

Ver la Versión Completa : Usuarios con base Mysql....


linuxtin
09-07-2011, 23:32:44
Hola como andan?? La duda que tengo es la siguiente, estoy desarrollando un proyecto para la facultad, es un sistema de gestión de información cliente/servidor. Lo estoy pensando que es para una empresa multinacional, con varias sucursales en el país.

Mi duda viene con el usuario y contraseña que el sistema usa para conectarse a la base de mysql. Entonces tengo que tener un solo usuario y contraseña para la base para todos los empleados?

Desde ya muchas gracias, si no se entendió me avisan.

Saludos.

Godzuki
12-07-2011, 19:51:03
Hola como andan?? La duda que tengo es la siguiente, estoy desarrollando un proyecto para la facultad, es un sistema de gestión de información cliente/servidor. Lo estoy pensando que es para una empresa multinacional, con varias sucursales en el país.

Mi duda viene con el usuario y contraseña que el sistema usa para conectarse a la base de mysql. Entonces tengo que tener un solo usuario y contraseña para la base para todos los empleados?

Desde ya muchas gracias, si no se entendió me avisan.

Saludos.

Por lo que lei, veo que estas en el mismo dilema que yo.

Yo estoy haciendo un mini sistema de usuarios para controlar el acceso a mi programa, dar permisos para hacer ciertas cosas etc.

Lo ideal segun he leido por ahi, es que cada quien tenga su usuario de mysql y un password.

Ahora, el detalle es que esto es peligroso ya que con esa información podrian accesar desde un cliente de mysql y ver todas las tablas y registros o peor borrarlos.

Lo que yo hice fue esto.

Cree una tabla:

KUSUARIOS

con los siguientes campos:
ID_USUARIO, CAMPO LLAVE, AUTO INC, INT
NOM_USUARIO, NOMBRE DE LA PERSONA, VARCHAR (50)
USER, EL NOMBRE DEL USUARIO QUE EL USUARIO CONOCE, VARCHAR (20)
PASS, LA CONTRASEÑA , VARCHAR (20)
REAL_USER, EL NOMBRE DE USUARIO QUE USA MYSQL, VARCHAR (20)
REAL_PASS,EL PASSWORD QUE USA MYSQL, VARCHAR (20)
STATUS, UNA BANDERA QUE MARCA UN REGISTRO DE LA TABLA PARA QUE NO SALGA EN CIERTOS QUERYS, VARCHAR (1)
Ahora la idea es la siguiente.

Primero debes crear el usuario para la persona en cuestion. Supongamos los siguientes datos:

nombre: juan perez
user:juanito
pass:casabonita
real user: sysuser001
real password: jdsh3uhFFn2

En donde el usuario final sabra solo los datos "user" y "pass", tu que eres el creador, daras de alta un usuario con real user y real password. La tabla que creaste guardara esta informacion.

Despues debes crear un usuario llamado LOGIN con su propio password, que sera el encargado de pedir a travez de tu programa, los datos de "user" y "pass".

El usuario mete sus datos de user y pass.

El programa hace un query como este:
SELECT * FROM KUSUARIOS WHERE USER = "juanito" AND PASS = "casabonita" AND STATUS = "A";

En delphi evaluas si el query regresa un registro o no para saber si se logeo o no, o mejor dicho para saber si existe en KUSUARIOS el registro. De esta forma el usuario final no sabe los verdaderos datos para conectarse y tu puedes hasta hacer una interfaz para que cambien el password.

Esto es lo que yo hice, no se si sea algo similar, pero a mi me suena familiar.

El delphi seria asi:

procedure boton(...)
var
begin
if query.recordcount > 0 then
begin
showmessage('Se ha logeado exitosamente');
MyConnection.User := Query.Fieldbyname('REAL_USER').asString;
MyConnection.Password := Query.Fieldbyname('REAL_PASS').asString;
MyConnection.Connected := True;
end
else
showmessage('no se ha logeado, revise.');
end;

linuxtin
13-07-2011, 01:19:17
Hola Godzuki!! Yo lo que hice es un solo usuario de mysql y en el sistema cree la tabla empleado. Puede ser que cada usuario tenga que tener su cuenta mysql y administrar los permisos desde el gestor de base se datos...

Pero en mi caso el sistema lo hice para que se actualice, entonces tiene que tener un único usuario de mysql.

Lo que decís de que si descubre la contraseña de mysql puede hacer estrago es cierto, pero le podes sacar mucho permisos, solo dejar el insert, y update. Y deshabilitas el showdatabases cuando inicia el servidor mysql.

Si estoy equivocado que alguien me corrija.

Saludos!