Tengo una BD con una tabla llamada contactos.
Que almacena unos datos en sus diferentes columnas:
- nombre, fecha, titulo, comentario, categoria_anuncio, ip
Tengo una columna llamada ip que almacena todas las ip de los clientes.
Una persona, con una ip determinada me introduce datos, y quiero denegarle el acceso a la tabla.
No tengo muchos conocimientos en Trigger, pero navegando encontré este código, y me gustaría saber si lo puedo aprovechar.
¿cómo quedaría el Trigger sabiendo que mi BD se llama contactos y la columna a denegar el acceso "ip"?
Tengo el siguiente ejemplo, pero no consigo relacionarlo con mis campos
Código SQL:
Ver original
CREATE TRIGGER AllowLocalOnly ON ALL SERVER FOR LOGON AS BEGIN DECLARE @IP VARCHAR(500) SET @IP = EVENTDATA().VALUE('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(500)') IF @IP IN ('154.70.110.188', '154.70.110.188') BEGIN Print '<span id="IL_AD10" class="IL_AD">Capture</span> tu IP ' + @IP ROLLBACK TRANSACTION END END GO
o algo así
Código MySQL:
Ver original
pruebo realizando trigger con esta sentencia, filtrándome yo también, pero los datos se introducen en la BD y no me filtra mi "ip"
Código SQL:
Ver original
DELETE FROM contactos WHERE ip = '154.70.110.188' AND '12.345.678.90'
¿algún ejemplo válido que me evite que ciertas "ip" puedan ingresar datos en la BD?
una vez modificado, ¿cómo lo activo, desde dónde lo ejecuto en Mysql?
¿lo copio y lo pego en "definición" desde disparadores poniendo un tiempo "before"?
o lo lanzo desde la pestaña SQL
Otra opción que no descarto, es hacer un trigger que me cambie la categoría del anuncio a "borrado", de esta manera, aunque permanezca en la BD, no se mostrará por el navegador.
Me funciona correctamente si lo lanzo desde SQL. pero si lo quiero hacer trigger para automatizarlo, no funciona.
Código SQL:
Ver original
UPDATE contactos SET categoria_anuncio = 'borrado' WHERE ip = '12.345.678.90'
Muchas gracias