1

我是 lua 语言的初学者。主要概念是当用户DROP TABLE在 mysql 中触发命令时,它不应该被执行。但是他可以像往常一样在 mysql 中触发所有其他命令。但我不想用GRANTS这个。是有什么luaScript可以通过mysql-proxy

例如:

mysql> DROP TABLE T1;
Please wait for authentication

通过 ? 执行此任务也有LuaSql帮助mysql-proxy

希望我把这个想法说清楚。有人帮我解决这个问题。在此先感谢。

4

1 回答 1

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 而不传递查询。从而有效地删除查询。

于 2017-07-26T17:04:54.467 回答