InicioLinuxMySQL GRANT SELECT a una DB Especifica con un Usuario Especi

MySQL GRANT SELECT a una DB Especifica con un Usuario Especi

Linux12/18/2012

Creo una base de datos llamada dbmorsa:

mysql> create database dbmorsa;




Creo un usuario nuevo morsa, si ya existe este comando cambia el password, con este comando también
habilitamos privilegios en todas las DB existentes:


mysql> GRANT ALL PRIVILEGES ON *.* TO 'morsa'@'localhost' IDENTIFIED BY 'my_pass';




Vemos el usuario creado

mysql> use mysql;




mysql> select user from user where user='morsa';



+-------+
| user |
+-------+
| morsa |
+-------+
1 row in set (0.00 sec)


Vemos privilegios con el usuario morsa logueado:

mysql> mysql –u root –p



Password: my_pass
mysql> show grants;

+-----------------------------------------------------------------------------------------------------------------------+
| Grants for morsa@localhost |
+-----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'morsa'@'localhost' IDENTIFIED BY PASSWORD '*6AA8F77DAD1D9BA03C9535B32B0281A1B70B6B90' |
+-----------------------------------------------------------------------------------------------------------------------+


Cambio a la DB dbmorsa

mysql> use dbmorsa




Creo dos tablas en la DB dbmorsa:

mysql> CREATE TABLE tabla1(codigo int, nombre varchar(10));
mysql> CREATE TABLE tabla2(valor int, nombreInt varchar(10));




Veo las tablas creadas:

mysql> show tables;



+-------------------+
| Tables_in_dbmorsa |
+-------------------+
| tabla1 |
| tabla2 |
+-------------------+
2 rows in set (0.00 sec)


Vemos que aun estan vacias:

mysql> select * from tabla1;



Empty set (0.00 sec)

mysql> select * from tabla2;


Empty set (0.00 sec)


Inserto datos en las tablas creadas previamente:

mysql> INSERT INTO tabla1 VALUES(1,'Beto');
mysql> INSERT INTO tabla1 VALUES(2,'Teto');
mysql> INSERT INTO tabla1 VALUES(3,'Peto');



mysql> INSERT INTO tabla2 VALUES(1,'Marta');
mysql> INSERT INTO tabla2 VALUES(2,'Parta');
mysql> INSERT INTO tabla2 VALUES(3,'Larta');




Consultamos los datos recientemente creados en ambas tablas:

mysql> select * from tabla1;



+--------+--------+
| codigo | nombre |
+--------+--------+
| 1 | Beto |
| 2 | Teto |
| 3 | Peto |
+--------+--------+
3 rows in set (0.00 sec)

mysql> select * from tabla2;


+-------+-----------+
| valor | nombreInt |
+-------+-----------+
| 1 | Marta |
| 2 | Parta |
| 3 | Larta |
+-------+-----------+
3 rows in set (0.00 sec)


Eliminamos usuario morsa:

mysql>DELETE FROM `mysql`.`user` WHERE `user`.`Host` = 'localhost' AND `user`.`User` = 'morsa';
mysql> FLUSH PRIVILEGES;




Ahora creamos nuevamente el usuario morsa y solo damos permisos a dicho usuario para realizar un SELECT en ls base dbmorsa y la tabla2:

root@Pruebas:~# mysql -u root –p
mysql> GRANT SELECT ON dbmorsa.tabla2 TO 'morsa'@'localhost' IDENTIFIED BY 'MORSA';
mysql> exit



root@Pruebas:~# mysql -u morsa -p


Vemos que solo esta visible la DB dbmorsa y la tabla2 correspondiente:

mysql> show databases;



+--------------------+
| Database |
+--------------------+
| dbmorsa |
+--------------------+
2 rows in set (0.00 sec)

mysql> use dbmorsa;



Database changed

mysql> show tables;



+-------------------+
| Tables_in_dbmorsa |
+-------------------+
| tabla2 |
+-------------------+
1 row in set (0.00 sec)


Corroboramos también que podemos hacer un select:

mysql> select * from tabla2;



+-------+-----------+
| valor | nombreInt |
+-------+-----------+
| 1 | Marta |
| 2 | Parta |
| 3 | Larta |
+-------+-----------+


Más info en:
Datos archivados del Taringa! original
22puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

H
HernanTirado🇦🇷
Usuario
Puntos0
Posts250
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.