Lua脚本停止通过mysql代理在mysql中触发查询

时间:2014-06-27 09:02:14

标签: mysql lua mysql-proxy luasql

我是lua语言的初学者。主要的概念是当用户在mysql中触发DROP TABLE命令时,不应该执行它。但是他可以像往常一样在mysql中触发所有其他命令。但是我不要&# 39; t想要使用GRANTSluaScript是否有mysql-proxy通过mysql> DROP TABLE T1; Please wait for authentication 执行此操作?

例如:

LuaSql

mysql-proxy也可以{{1}}帮助您通过{{1}}执行此任务吗?

希望我明白这个想法。有人帮我解决了这个问题。谢谢你。

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。这里的想法是检查查询是否满足您要过滤的要求,如果是,则不将其发送到服务器

function read_query(packet)
        if string.byte(packet) == proxy.COM_QUERY then
                query = packet:sub(2)
                if condition(query) then
                   proxy.response = {
                           type = proxy.MYSQLD_PACKET_OK,
                   }
                   return proxy.PROXY_SEND_RESULT
                end
        end
end

这将检查代理为condition收到的每个查询,如果匹配则只返回客户端的SUCCESS而不传递查询。从而有效地删除了查询。