最新の安定したCentOSで実行されているmysqlサーバーへのリモート接続を許可する必要があります。
私はこのアイデアがまったく好きではないので、少なくともできるだけ多くの関連情報を収集したいと思います。正確には、次のことが必要です(欲しい):
mysqlマニュアル によると、すべてをログに記録するか(許容できないパフォーマンスのオーバーヘッド)、私に関係があると思われるものは何もありません(そして、攻撃者/無責任な管理者を追跡するのに役立つもの)。
このログをN分ごとにgrepして消去することを考えましたが、これは正しくないようです。
実際には、すべての接続をmysql自体に記録する方法があります。
前提条件:この情報を格納するために使用するデータベースの名前は、adminと呼ばれます。
接続情報を格納するテーブルを作成します。必要がない場合は、一意のキーを含める必要はありません。
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));
Init-connect変数を設定します。これは、接続するクライアントごとに実行される文字列です。詳細はこちら。
SET GLOBAL init_connect = "INSERT INTO admin.connections (connect_time, user_Host, connection_id) VALUES (NOW(), CURRENT_USER(), CONNECTION_ID());";
すべてのユーザーの権限をチェックして、ユーザーがadmin.connectionsテーブルにレコードを挿入できることを確認します。
グローバル権限のないユーザーとしてログインし、admin.connectionsテーブルに行を挿入する必要があります。 init-connectシステム変数は、グローバル権限を持つユーザーでは機能しないことに注意してください。良くも悪くも、私たちすべてのDBAはそれが何を意味するのかを知っています。
接続テーブルが成長し、繁栄するのを見てください。新しいペット(プロジェクト)を始めたところです。
ソース: http://mysqlhints.blogspot.com.es/2011/01/how-to-log-user-connections-in-mysql.html
今、あなたはあなたのユーザーが責任があることを期待しなければなりません、彼らはあなたのテーブルをデータで溢れさせるかもしれません、しかしそれからあなたは悪意のある誰かに対処します。安全のために、このテーブルを監視し、そのコピーを保持するリモートロケーションを使用します。