Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Crear usuarios con permisos sobre tabla según condicion

Estas en el tema de Crear usuarios con permisos sobre tabla según condicion en el foro de Mysql en Foros del Web. Hola gente que tal, tengo una pregunta, se puede crear un usuario que tenga acceso sobre una tabla, pero solo a determinados registros? Me refiero, ...
  #1 (permalink)  
Antiguo 14/05/2015, 17:40
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Crear usuarios con permisos sobre tabla según condicion

Hola gente que tal, tengo una pregunta, se puede crear un usuario que tenga acceso sobre una tabla, pero solo a determinados registros?

Me refiero, supongamos que tengo la tabla "categorias" con los campos "codigo", "creador", "descripcion" y quiero que un usuario de la base de datos (no uno que admistre el programa) solo pueda ver los registros donde creador = 1.

La idea seria similar a crear una vista de esa tabla para cada usuario, y darle permisos de acceso sobre la vista, el tema es que si tengo 50 usuarios en la base de datos, tendria que tener 50 vistas una para cada uno (solo para una tabla, y son varias decenas de tablas) hay alguna forma de dar permisos a nivel registro o de pasarle como parametro a una vista algun dato del usuario actual para lograr tal efecto?

Muchas gracias.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 15/05/2015, 10:14
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Crear usuarios con permisos sobre tabla según condicion

Lo logre! Esta es la solucion:

En la tabla "categorias" el campo creador se le asigna en la inserción el valor de la funcion USER() de mysql, ej:

Código MySQL:
Ver original
  1. INSERT INTO `categorias`(`codigo`, `descripcion`, `creador`) VALUES (1, 'prueba', USER());

Y luego creo la vista:
Código MySQL:
Ver original
  1. DEFINER=`user`@`localhost` SQL SECURITY
  2. DEFINER VIEW `categoria_por_usuario`
  3. select `categorias`.`codigo` AS `codigo`,`categorias`.`descripcion` AS `descripcion` from `categorias` where (`categorias`.`creador` = user());
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: campo, permisos, registro, según, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:30.