Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   UserID y contraseña en MySQL. (https://www.clubdelphi.com/foros/showthread.php?t=86599)

TiammatMX 07-09-2014 18:59:39

UserID y contraseña en MySQL.
 
Jóvenes delphiner@s:

Tengo un requerimiento de acceder a una base de datos MySQL, tomando en cuenta que mi aplicación deberá conectarse a la base datos SIEMPRE Y CUANDO EL USUARIO SEA VÁLIDO. Nada del otro mundo en verdad, el problema estriba en que la existencia y entrada a la base de datos deberá estar dada por la existencia del usuario COMO VÁLIDA PARA MySQL, es decir, (y poniendo como ejemplo a MS SQLServer) si el usuario coincide en UserID y contraseña con los usuarios autorizados para MySQL, podrá acceder a la base de datos, caso contrario no podrá ejecutar la aplicación.

¿En qué esquema y tabla residen los usuarios de MySQL? ¿Cómo puedo interrogar a MySQL (proporcionándole el UserID y contraseña, por ejemplo 'root' y 'root') para validar que el usuario que pretende usar mi aplicación tiene "carta abierta" para acceder a la base de datos que se requiere? Busqué en los esquemas propios de MySQL (information_schema y performance_schema) y no pude hallar éste dato, o tal vez no busqué suficientemente bien y a profundidad..., no sé.

¿Alguna idea, orientación, ayuda o código que pudieran proporcionarme? De antemano, gracias.

The_Duke 07-09-2014 23:13:15

Los usuarios creados por mysql, se almacenan en una tabla llamada user en la base de datos mysql.

si te conectas con:
Código SQL [-]
SELECT USER FROM USER;

giulichajari 07-09-2014 23:16:52

Tabla users
 
En el workbench por ejemplo tienes una bd por defecto que es "mysql", que tiene la tabla users, aqui figuran todos los usuarios existentes en el momento, pero esto dejalo, simplemente has un:
Código SQL [-]
select * from mysql.user;

Tambien puedes hacer un :
Código SQL [-]
Select current_user();

Para saber el usuario actual.

Lo ultimo que te puedo decir es que entrando a la instancia de servidor, al a derecha en Server Administration, encuentras la manera manual de crear usuarios, conceder privilegios sobre que esquemas trabajan, desde que ip, etc...

Y para la comprobacion de usuarios, nunca hice nada en el lado de la base de datos... siempre una tabla de users pero propia de mi sistema, entonces verifico ahi, los user y sus pass son definidos cuando se instala el sistema. Tambien podrias usar un estructura if con mysql.user, pero me parece mas conveniente tenerlos en la aplicacion que uno desarrolla.

Saludos..

roman 08-09-2014 16:37:49

Cita:

Empezado por tiammat (Mensaje 480827)
Tengo un requerimiento de acceder a una base de datos MySQL, tomando en cuenta que mi aplicación deberá conectarse a la base datos SIEMPRE Y CUANDO EL USUARIO SEA VÁLIDO. Nada del otro mundo en verdad, el problema estriba en que la existencia y entrada a la base de datos deberá estar dada por la existencia del usuario COMO VÁLIDA PARA MySQL, es decir, (y poniendo como ejemplo a MS SQLServer) si el usuario coincide en UserID y contraseña con los usuarios autorizados para MySQL, podrá acceder a la base de datos, caso contrario no podrá ejecutar la aplicación.

Pero, es que lo que estás describiendo es el mecanismo de autenticación de MySQL, y seguramente de cualquier otro motor. Si bien puedes acceder a la tabla de usuarios como te han indicado los compañeros, no parece ser necesario en tu caso.

En el momento en que quieras conectarte al servidor, éste decidirá si las credenciales que le envías son o no correctas, es decir, podrás conectarte siempre y cuando el usuario sea válido, sin que tengas que hacer tú mismo la validación.

// Saludos

TiammatMX 09-09-2014 16:55:12

Cita:

Empezado por roman (Mensaje 480866)
... podrás conectarte siempre y cuando el usuario sea válido, sin que tengas que hacer tú mismo la validación...

El detalle, Román, es que el requerimiento es ése precisamente. Que "brincándose" un poco (o apoyándose un mucho, como quieras verlo) en la validación propia del motor, se permita o no a un usuario dado acceder o no a la aplicación. Los que pagan, mandan...

roman 09-09-2014 17:24:15

Pero no entiendo tu problema:

1. El usuario intenta iniciar sesión en tu sistema
2. Tu sistema manda credenciales a mysql
3. Si mysql ls acepta, le das entrada al sistema
4. Si no, no.

// Saludos


La franja horaria es GMT +2. Ahora son las 20:03:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi