Na verdade, existe uma maneira de registrar todas as conexões em um mysql:
Suposições: O nome do banco de dados que usaremos para armazenar essas informações será chamado admin.
-
Crie a tabela para armazenar as informações de conexão. Você não precisa incluir a chave exclusiva se não quiser.
CREATE TABLE admin.connections (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, connect_time DATETIME NOT NULL, user_host VARCHAR(50) NOT NULL, connection_id INT UNSIGNED NOT NULL, UNIQUE INDEX idx_connect_time_user_host (connect_time, user_host));
-
Defina a variável init-connect. Esta é uma string a ser executada para cada cliente que se conecta. Detalhes aqui.
SET GLOBAL init_connect = "INSERT INTO admin.connections (connect_time, user_host, connection_id) VALUES (NOW(), CURRENT_USER(), CONNECTION_ID());";
-
Verifique as permissões de todos os usuários para garantir que eles possam inserir um registro na tabela admin.connections.
-
Faça login como um usuário sem privilégios globais e uma linha deve ser inserida na tabela admin.connections. Observe que a variável de sistema init-connect não funciona em usuários com privilégios globais. Para o bem ou para o mal, todos os DBAs sabem o que isso significa.
-
Veja a sua tabela de conexões crescer e florescer. Você acabou de começar um novo animal de estimação (projeto).
Fonte: link
Agora você tem que esperar que seus usuários sejam responsáveis, eles podem começar a inundar sua tabela com dados, mas depois você lida com alguém com intenção maliciosa. Por segurança, eu usaria um local remoto que vigiasse essa tabela e guardasse uma cópia dela.