Mysql远程连接日志记录

Mysql远程连接日志记录
我需要允许远程连接运行在最新稳定的CentOS上的 mysql服务器.

我完全不喜欢这个想法所以我至少要收集尽可能多的相关信息.确切地说,我需要(想要)以下:

> [datetime] 1.2.3.4连接
> [datetime] 3.4.5.6密码错误

根据mysql manual,要么记录所有内容(不可接受的性能开销),要么记录任何与我相关的内容(以及什么可以帮助我们跟踪攻击者/不负责任的管理员).

我考虑过每N分钟点击和删除这个日志,但这似乎不对.

实际上有一种方法可以将所有连接记录到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

现在你必须要求你的用户负责,他们可能会开始使用数据充斥你的表,但随后你会与恶意的人打交道.为了安全起见,我会使用一个远程位置来查看该表并保留它的副本.

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部