mysql-proxy read_query方法實現執行特殊SQL後認證連接 在mysql-proxy中可以通過設置會話變量的方式,實現 在得到數據庫連接後再執行指定的SQL語句進行二次認證的功能。如果沒有二次認證,則攔截該數據庫連接的一切請求並返回錯誤。 Java代碼 local authed = false function read_query( packet ) if (authed == false) then if packet:byte() == proxy.COM_QUERY then if(packet:sub(2):lower() == "select 2013 from dual") then authed = true else proxy.response.type = proxy.MYSQLD_PACKET_ERR proxy.response.errmsg = "unauthed connection !!! " return proxy.PROXY_SEND_RESULT end else proxy.response.type = proxy.MYSQLD_PACKET_ERR proxy.response.errmsg = "unauthed connection !!!" return proxy.PROXY_SEND_RESULT end end end