Mysql查询的审计
我想在Windows和Linux上启用Mysql服务器的审计。我正在为日志分析器工具从MySQL服务器收集日志。因此,我首先需要知道如何对所有可能的查询(如错误、警告、成功和信息)进行审核 1) 如何在Windows和Linux中启用MySQL(任何版本)审计 2) 如何将日志发送到syslog(Unix)和EventLog(Windows) 有人能分享上述问题的分步解决方案吗 我在my.ini中添加了下面几行,但是由于下面几行的原因,我可以重新启动mysql服务器。如果删除这些行并重新启动,服务器将成功重新启动Mysql查询的审计,mysql,logging,event-log,syslog,audit,Mysql,Logging,Event Log,Syslog,Audit,我想在Windows和Linux上启用Mysql服务器的审计。我正在为日志分析器工具从MySQL服务器收集日志。因此,我首先需要知道如何对所有可能的查询(如错误、警告、成功和信息)进行审核 1) 如何在Windows和Linux中启用MySQL(任何版本)审计 2) 如何将日志发送到syslog(Unix)和EventLog(Windows) 有人能分享上述问题的分步解决方案吗 我在my.ini中添加了下面几行,但是由于下面几行的原因,我可以重新启动mysql服务器。如果删除这些行并重新启动,服
log_output="FILE"
general_log=1
general_log_file="E:\Logs\my-sql-general-log.log"
slow-query-log=1
slow_query_log_file="my-sql-slow-log.log"
long_query_time=10
我只尝试了一般日志,但遇到了同样的问题。我还尝试了general_log=on和general_log=1。没有发现变化
我在Windows10和MySQL服务器5.0上尝试了上述更改
编辑1:
我在my.ini中添加了下面的行
log="C:/Program Files/MySQL/MySQL Server 5.0/logs/general-log.log"
添加上述行后,查询日志将写入该文件。错误仍然没有写入,也没有转发到事件查看器
编辑2:
1) 我在我的Windows机器中将下面的行添加到我的.ini
log="C:/Program Files/MySQL/MySQL Server 5.0/logs/my-sql-general-log.log"
log_bin="C:/Program Files/MySQL/MySQL Server 5.0/logs/my-sql-bin-log.log"
log_error="C:/Program Files/MySQL/MySQL Server 5.0/logs/my-sql-error-log.log"
log_slow_queries
long_query_time = 1
在这种情况下,所有查询都会写入常规日志,但错误不会写入错误日志。在错误日志中,只写入mysql服务日志的启动/停止
(i)如何将“未选择数据库”或“表不存在”等错误写入错误日志文件
(ii)如果我在my.ini中添加log output=TABLE,mysql服务将不会重新启动。是什么导致了这个问题?它在Linux中运行良好
(iii)如何将这些日志发送到EventViewer
2) 我将以下几行添加到我的Linux机器中的.cnf
[mysqld_safe]
syslog
[mysqld]
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_error = /var/logs/mysql/error.log
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
log_bin = /var/log/mysql/mysql-bin.log
添加这些行后,将常规日志发送到syslog服务器,但不会发送错误日志
(i)如何将诸如“未选择数据库”或“表不存在”之类的错误写入错误日志文件并将其发送到syslog服务器
(ii)我也尝试了日志输出=表
,但当日志写入表时,它不会发送到syslog服务器。如果日志被写入到表中,如何将日志发送到syslog服务器
一般日志如下所示-
181017 11:46:41 1 Connect root@localhost on
1 Query set autocommit=1
1 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
1 Query SHOW SESSION VARIABLES LIKE 'lower_case_table_names'
1 Query SELECT current_user()
1 Quit
有没有办法让日志像下面这样写
Time User ThreadID Command Argument
181017 11:46:41 root@localhost 1 Connect root@localhost on
181017 11:46:41 root@localhost 1 Query set autocommit=1
181017 11:46:41 root@localhost 1 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
181017 11:46:41 root@localhost 1 Query SHOW SESSION VARIABLES LIKE 'lower_case_table_names'
181017 11:46:41 root@localhost 1 Query SELECT current_user()
181017 11:46:41 root@localhost 1 Quit
编辑3:
通过修改rsyslog.conf文件,我可以将所有日志发送到syslog,但仍然无法将常规和慢速查询日志转发到Windows EventLog