elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  ¿Cómo mostrar solo campos con privilegios Select? (MySQL)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo mostrar solo campos con privilegios Select? (MySQL)  (Leído 3,677 veces)
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
¿Cómo mostrar solo campos con privilegios Select? (MySQL)
« 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.


En línea

abc
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: ¿Cómo mostrar solo campos con privilegios Select? (MySQL)
« Respuesta #1 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.


« Última modificación: 24 Marzo 2015, 00:42 am por MinusFour » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: ¿Cómo mostrar solo campos con privilegios Select? (MySQL)
« Respuesta #2 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
« Última modificación: 24 Marzo 2015, 01:51 am por Darhius » En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines