Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: 1mpuls0 en 24 Marzo 2015, 00:16 am



Título: ¿Cómo mostrar solo campos con privilegios Select? (MySQL)
Publicado por: 1mpuls0 en 24 Marzo 2015, 00:16 am
He creado un usuario que únicamente tendrá privilegios select a algunos campos de las tablas.

Los permisos se los asigno con el siguiente query
Código
  1. GRANT SELECT, SELECT (campo1, campo3) ON `database`.`table` TO 'user'@'%'
  2.  

Pero al hacer

Código
  1. SELECT * FROM `table`;
  2.  

Me muestra todos los campos sin problema.

Código
  1. +--------+--------+--------+
  2. | campo1 | campo2 | campo3 |
  3. +--------+--------+--------+
  4. |      1 | dato1  | valor1 |
  5. |      2 | dato2  | valor2 |
  6. +--------+--------+--------+

¿Cómo puedo hacer para que solamente me muestre los campos campo1 y campo3 al hacer la consulta?.

Gracias.


Título: Re: ¿Cómo mostrar solo campos con privilegios Select? (MySQL)
Publicado por: MinusFour en 24 Marzo 2015, 00:38 am
¿Creaste el usuario desde la terminal tambien?

Puedes poner el resultado de:

Código
  1. SHOW GRANTS FOR 'user'@'localhost';

Edit:

Me acabo de dar cuenta que tienes:

Código

Y luego le estas dando:

Código
  1. GRANT SELECT (campo1, campo3);

Con el primer grant basicamente le estas diciendo que puedes leer toda la tabla.


Título: Re: ¿Cómo mostrar solo campos con privilegios Select? (MySQL)
Publicado por: 1mpuls0 en 24 Marzo 2015, 01:35 am
1. No cree el usuario desde la terminal, utilicé la gui sqlyog

2. Resultado de la show grants
Código
  1. "GRANT SELECT, SELECT (campo1, campo3) ON `database`.`table` TO 'user'@'%'"
  2.  

3. Si no coloco SELECT, SELECT me muestra el siguiente mensaje y hago
Código
  1. SELECT * FROM TABLE;
  2.  

Obtengo
Citar
Error Code: 1142
SELECT command denied to user 'user'@'localhost' for table 'table'

Edito:
Aunque si solo hago.
Código
  1. SELECT campo1, campo3 FROM TABLE;
  2.  

No tengo problemas.
Pensaba que con * solo me mostraría los campos que tienen ese permiso :P



Gracias por la ayuda