Creación del Primer Usuario en la BD (Lector Simple)

Como el título lo dice vamos a crear un usuario.
Hasta ahora, en la BD estoy usando al clásico “root” por un tema de flojera😯 , pero no es nada seguro.

Por lo tanto, y con lo que llevo avanzado, necesito solamente un usuario que lea los registros. Por ejemplo en el login, necesito que:

  1. SELECT para buscar el nombre de usuario (Tabla usernames)
  2. La contraseña (Tabla passwords)
  3. Los datos (Tabla dusuarios)

Entonces, como pueden ver… no es necesario tener todos los privilegios ni permisos de la BD. Más en el salto😀


Entonces, creamos el usuario con el siguiente comando (como root obviamente…😕 ):

CREATE USER 'lector'@'localhost' IDENTIFIED BY 'lectorpass';

Este es el comando para crear usuarios en MySQL desde la versión 5.0.2 (una alternativa). De esta forma, el usuario no tiene privilegio alguno.
Ahora, vemos que cosas puede hacer, por el momento, con este comando:

mysql> show grants for lector;
+----------------------------------------------------------------------+
| Grants for lector@localhost
|
+----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'lector'@'localhost' IDENTIFIED BY PASSWORD '*55..' |
+----------------------------------------------------------------------+
1 row in set (0.00 sec) 

Osea, no puede hacer nada…😦
Ps… le damos permiso de leer en las tablas mencionadas arriba. SOLO LEER en ESAS TABLAS😈

mysql> grant select on proyec.usernames to lector@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql> grant select on proyec.passwords to lector@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> grant select on proyec.dusuarios to lector@localhost;
Query OK, 0 rows affected (0.00 sec)

Si corrimos el comando “show grants” nuevamente, vemos los permisos actualizados.
Ahora, salimos del root (me acordé de mis tiempos de azúl😦 ) y entramos como ‘lector’

C:\>mysql -h localhost -u lector -p

Se nota que uso windows😀 Ahora, lanzamos los comandos:

show databases;

Y tenemos como salida:
+—————-+
| Database |
+—————-+
| proyec |
+—————-+
3 rows in set (0.00 sec)
Ahora, elegimos la BD con:

use proyec;

Y responde:
Database changed
Siguiente, pedimos mostrar las tablas:

show tables;

+——————+
| Tables_in_proyec |
+——————+
| dusuarios |
| passwords |
| usernames |
+——————+
3 rows in set (0.00 sec)

La BD “proyec” tiene más tablas, pero solo  me muestra las que puede leer el usuario lector.

Y eso sería todo😀. En caso de hacer un update (por ejemplo) nos saldría este mensaje:

mysql> update proyec.usernames
-> set username = 'algo'
-> where id='12345678';
ERROR 1142 (42000): UPDATE command denied to user 'lector'@'localhost' for table
'usernames'

😀 Y ps lo cambié en la clase “login” del servlet y quedó algo así:

Connection conexion = DriverManager.getConnection
                        ("jdbc:mysql://127.0.0.1/proyec", "lector", "lectorpass");

Acerca de MaritoCares

Ingeniero Informático. Con tendencias a la programación en [C#, VB].NET, Java(Web principalmente...), PHP, JavaScript, algo mínimo de [ruby, python], y el clásico C.
Esta entrada fue publicada en MySQL, Proyecto y etiquetada . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s