【MySQL】MySQL 社区版本开启审计日志

MySQL 社区版本是否支持开启审计日志?

MySQL 社区版本支持开启审计日志。MySQL 5.5.3 及更高版本提供了审计日志功能,可以用于记录数据库服务器的活动和事件,帮助进行安全性审计和故障排查。通过配置审计日志,可以记录用户连接、查询语句、DDL 和 DML 操作、登录和退出等信息。

要启用审计日志,您需要编辑 MySQL 的配置文件(通常为 my.cnf 或 my.ini),并设置相应的参数。以下是一些常用的审计日志参数:

  • audit_log: 指定审计日志文件的路径和名称。
  • audit_log_format: 指定审计日志的格式,可以是 "JSON" 或 "OLD".
  • audit_log_rotate_on_size: 设置审计日志文件达到一定大小时是否进行轮转。
  • audit_log_policy: 指定审计日志的记录策略,可以是 "ALL"(记录所有事件)或 "LOGINS"(仅记录登录和退出事件)。

配置完成后,重新启动 MySQL 服务器,审计日志将开始记录相应的事件。您可以使用日志文件查看工具(如 less、tail 等)来查看和分析审计日志。
请注意,启用审计日志可能会对系统性能产生一定的影响,因此在生产环境中使用时需谨慎评估。

如何开启MySQL 5.6版本审计日志?

要在 MySQL 5.6 版本中启用审计日志,您需要进行以下步骤:

  1. 编辑 MySQL 的配置文件(my.cnf 或 my.ini)。您可以使用以下命令之一来查找配置文件的位置:

    • mysql --help | grep "my.cnf"
    • mysqladmin --help | grep "my.cnf"
    • mysqld --help --verbose | grep "my.cnf"
  2. 在配置文件中找到 [mysqld] 部分,添加或修改以下参数:

    [mysqld]
    ...
    # 启用审计日志
    audit_log = ON
    # 指定审计日志文件的路径和名称
    audit_log_file = /path/to/audit.log
    # 指定审计日志的格式,可以是 "JSON" 或 "OLD"
    audit_log_format = JSON
    # 设置审计日志文件达到一定大小时是否进行轮转
    audit_log_rotate_on_size = 1000000000
    # 指定审计日志的记录策略,可以是 "ALL"(记录所有事件)或 "LOGINS"(仅记录登录和退出事件)
    audit_log_policy = ALL
    ...
    

    请注意,将 /path/to/audit.log 替换为您希望存储审计日志的实际路径和文件名。

  3. 保存并关闭配置文件。

  4. 重启 MySQL 服务器,以使新的配置生效。您可以使用以下命令来重启 MySQL:

    • 在 Ubuntu 或 Debian 上:sudo service mysql restart
    • 在 CentOS 或 Red Hat 上:sudo systemctl restart mysqld
    • 在 Windows 上:使用服务管理器或 MySQL 的命令行工具来重启。

现在,MySQL 5.6 版本中的审计日志已经启用了,并会将事件记录到指定的日志文件中。
您可以使用日志文件查看工具(如 less、tail 等)来查看和分析审计日志。

要在MySQL社区版本中启用审计日志,需要执行以下步骤:

  1. 打开MySQL配置文件。该文件通常位于/etc/mysql/my.cnf/etc/my.cnf,具体位置取决于操作系统和安装方式。

  2. 找到并编辑以下行,如果不存在则添加它们:

    [mysqld]
    plugin-load-add=audit_log.so
    audit-log=FORCE_PLUS_PERMANENT
    audit-log-file=/var/log/mysql/audit.log
    audit_log_format=JSON
    
    • plugin-load-add=audit_log.so将加载审计日志插件。
    • audit-log=FORCE_PLUS_PERMANENT将强制启用审计日志,并在MySQL重新启动后保持启用状态。
    • audit-log-file=/var/log/mysql/audit.log将指定审计日志的文件路径。你可以根据需要更改此路径。
    • audit_log_format=JSON将指定审计日志的格式为JSON。如果不指定此选项,默认格式为CSV。
  3. 保存并关闭配置文件。

  4. 重新启动MySQL服务,以使配置更改生效。你可以使用以下命令重启MySQL服务:

    sudo service mysql restart
    

现在,MySQL社区版本应该已经启用了审计日志,并将日志记录到指定的文件中。
你可以通过查看/var/log/mysql/audit.log文件来查看和分析审计日志。
请注意,你可能需要相应的权限才能访问和查看这个文件。

如何检查 MySQL 是否开启了 审计日志?

要检查MySQL是否已启用审计日志,可以执行以下步骤:

  1. 连接到MySQL服务器。你可以使用命令行客户端(如MySQL Shell或mysql命令)或任何其他MySQL客户端工具,以管理员或具有足够权限的用户身份进行连接。

  2. 执行以下命令来查看当前的MySQL配置:

    SHOW VARIABLES LIKE 'audit%';
    

    这将显示与审计相关的配置选项及其当前值。

    • audit_log选项的值应为ON,表示审计已启用。如果值为OFF,则表示审计未启用。
    • audit_log_file选项的值指示了审计日志的文件路径。你可以查看该路径以确认是否有相应的日志文件生成。

如果audit_log的值为ON,并且audit_log_file指定的路径存在相应的日志文件,则表示MySQL已启用审计日志。否则,如果audit_log的值为OFF,则表示审计未启用。

SONAME是"Shared Object Name"的缩写。在Linux和Unix系统中,共享对象是可重用的代码和函数库,以.so文件的形式存在。共享对象文件包含可由多个程序共享的代码和数据。

SONAME是共享对象的标识符,用于指定共享对象的名称和版本信息。在MySQL中,SONAME用于指定插件的共享库文件名,以便MySQL可以加载和使用插件。通过指定SONAME,MySQL可以确定正确的共享库文件,并确保插件与MySQL版本和操作系统兼容。

插件的SONAME通常与插件共享库文件的文件名相关联,但并不总是相同。SONAME提供了一种独立于具体文件名的标识方式,使得插件可以在不同的系统上进行移植和使用。

需要注意的是,如果MySQL的配置更改后没有重新启动MySQL服务,那么上述步骤可能不会反映最新的配置更改。
在修改配置后,请确保重新启动MySQL服务以使更改生效。

如何不重启MySQL,实现开启MySQL 审计日志?

在MySQL中,要在不重启MySQL服务的情况下启用审计日志,你可以执行以下步骤:

  1. 连接到MySQL服务器。你可以使用命令行客户端(如MySQL Shell或mysql命令)或任何其他MySQL客户端工具,以管理员或具有足够权限的用户身份进行连接。

  2. 执行以下命令来动态加载审计日志插件:

    INSTALL PLUGIN audit_log SONAME 'audit_log.so';
    

    这将加载审计日志插件,而无需重新启动MySQL服务。

  3. 执行以下命令来启用审计日志:

    SET GLOBAL audit_log=ON;
    

    这将启用审计日志功能,并开始记录日志。

现在,MySQL将开始记录审计日志,而无需重新启动MySQL服务。
你可以通过查看配置文件中定义的审计日志文件路径或执行SHOW VARIABLES LIKE 'audit_log_file';命令来确定日志文件的位置。
请注意,这些更改在MySQL重新启动后将失效,因此如果你希望在长期运行中保持审计日志的启用状态,建议在MySQL配置文件中进行相应的更改并重启MySQL服务。

审计日志大概记录的内容是什么?

审计日志的内容取决于您的配置和数据库的活动。一般而言,审计日志记录了数据库服务器的各种事件和操作,包括用户连接、查询语句、DDL 和 DML 操作、登录和退出等信息。

以下是一些可能的审计日志记录示例及其解读:

  1. 用户连接事件:

    {
      "timestamp": "2022-01-01 12:00:00",
      "event": "Connect",
      "user": "alice",
      "host": "192.168.0.1",
      "ip": "192.168.0.1",
      "port": 54321,
      "status": "Success"
    }
    

    这条记录表示用户 "alice" 成功连接到数据库服务器,IP 地址为 "192.168.0.1",端口为 54321。

  2. 查询语句事件:

    {
      "timestamp": "2022-01-01 12:05:00",
      "event": "Query",
      "user": "bob",
      "host": "192.168.0.2",
      "ip": "192.168.0.2",
      "port": 12345,
      "query": "SELECT * FROM customers",
      "status": "Success"
    }
    

    这条记录表示用户 "bob" 成功执行了一个查询语句,查询了名为 "customers" 的表的所有数据。

  3. DDL 操作事件(例如创建表):

    {
      "timestamp": "2022-01-01 12:10:00",
      "event": "DDL",
      "user": "admin",
      "host": "localhost",
      "ip": "127.0.0.1",
      "port": 54321,
      "query": "CREATE TABLE orders (id INT, customer_id INT, amount DECIMAL(10,2))",
      "status": "Success"
    }
    

    这条记录表示用户 "admin" 成功执行了一个 DDL 操作,创建了一个名为 "orders" 的表。

  4. 登录和退出事件:

    {
      "timestamp": "2022-01-01 12:15:00",
      "event": "Login",
      "user": "john",
      "host": "192.168.0.3",
      "ip": "192.168.0.3",
      "port": 54321,
      "status": "Success"
    }
    

    这条记录表示用户 "john" 成功登录到数据库服务器。

    {
      "timestamp": "2022-01-01 12:20:00",
      "event": "Logout",
      "user": "john",
      "host": "192.168.0.3",
      "ip": "192.168.0.3",
      "port": 54321,
      "status": "Success"
    }
    

    这条记录表示用户 "john" 成功退出数据库服务器。

这些示例仅是可能的审计日志记录,实际记录的内容和格式可能会有所不同。
根据您的需求,您可以分析这些记录来进行安全性审计、故障排查等操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容