Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Skeletron en 30 Junio 2013, 05:17 am



Título: Se puede bloquear una tabla globalmente en MyISAM?
Publicado por: Skeletron en 30 Junio 2013, 05:17 am
Hola gente.
Les comento la siguiente situacion:

Voy a mi MySQL Workbench (algo así como el IDE de MySQL) y ejecuto lo siguiente:
LOCK TABLES usuarios READ;

De esa manera queda bloqueada la lectura a USUARIOS
Luego voy a mi sitio web, y accedo al sistema con usuario y contraseña, y el usuario accede correctamente, o sea: SI puedo leer la tabla. Y no debería.

Como puedo hacer para bloquear la tabla de manera que NINGUNA OTRA CONEXION pueda acceder a leer a ella, temporalmente.

No busco alternativas. Solo quiero bloquear la tabla, forzar el bloqueo de lectura y escritura a una tabla y que nadie mas pueda acceder a ella. NEVER IN THE LIFE hasta que yo la vuelva a desbloquear (o hasta que se cierre la sesion, o timeout o lo que sea).

Alguien sabe como hacerlo?

La idea es que yo desde el IDE logre bloquear una tabla, y que al acceder desde la pagina web, todo quede "clavado" esperando que la tabla se libere.

Se puede?

Gracias.


Título: Re: Se puede bloquear una tabla globalmente en MyISAM?
Publicado por: 1mpuls0 en 1 Julio 2013, 21:15 pm
Todas las tablas bloqueadas por el flujo actual se liberan implícitamente cuando el flujo reliza otro LOCK TABLES, o cuando la conexión con el servidor se cierra.
http://dev.mysql.com/doc/refman/5.0/es/lock-tables.html (http://dev.mysql.com/doc/refman/5.0/es/lock-tables.html)

Y qué pasa si ejecutas directamente una consulta a la tabla de usuarios?, en lugar de hacerlo desde el sitio.

Saludos.


Título: Re: Se puede bloquear una tabla globalmente en MyISAM?
Publicado por: Skeletron en 28 Noviembre 2013, 02:10 am
En ese caso, está bloqueada...
O sea:
Si con el usuario "PEPE" bloqueo la tabla "USUARIOS", PEPE ya no puede acceder a ella, pero otros usuarios de MySQL SI pueden.