init-connet设置

注:该参数对超级用户不生效

-- 创建测试库

mysql> create database test;

Query OK, 1 row affected (0.00 sec)

mysql> use test;

Database changed

-- 创建审计记录表

mysql> CREATE TABLE `conn_log` (

-> `conn_id` int(11) DEFAULT NULL,

-> `conn_time` datetime DEFAULT NULL,

-> `user_name` varchar(128) CHARACTER SET utf8 DEFAULT NULL,

-> `cur_user_name` varchar(128) CHARACTER SET utf8 DEFAULT NULL,

-> `ip` varchar(15) CHARACTER SET utf8 DEFAULT NULL,

-> KEY `conn_time` (`conn_time`)

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;

Query OK, 0 rows affected (0.01 sec)

-- 设置审计内容

mysql> set global init_connect="set @user=user(),@cur_user=current_user();insert into test.conn_log values(connection_id(),now(),@user,@cur_user,'10.0.0.1');"

-> ;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%init%';

+------------------------+-------------------------------------------------------------------------------------------------------------------------------+

| Variable_name | Value |

+------------------------+-------------------------------------------------------------------------------------------------------------------------------+

| init_connect | set @user=user(),@cur_user=current_user();insert into test.conn_log values(connection_id(),now(),@user,@cur_user,'10.0.0.1'); |

| init_file | |

| init_slave | |

| table_definition_cache | 1400 |

+------------------------+-------------------------------------------------------------------------------------------------------------------------------+

4 rows in set (0.00 sec)

-- 创建普通用户

mysql> grant select,insert on dba_test.* to 'test'@'%' identified by 'test';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

异常

[root@test ~]# mysql -S /data0/mysql57/mysql3307/mysqltmp/mysql3307.sock -utest -ptest

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 117

Server version: 5.7.21-log

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show user();

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id: 118

Current database: *** NONE ***

ERROR 1184 (08S01): Aborted connection 118 to db: 'unconnected' user: 'test' host: 'localhost' (init_connect command failed)

mysql> select user();

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id: 119

Current database: *** NONE ***

异常处理

分析

通过查看erro log发现test用户没有test.conn_log表的写权限,导致init-connect中的sql内容无法进行,

从而导致连接失败

解决

-- 赋权

mysql> grant insert on test.* to 'test'@'%';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

-- 登陆正常

[root@test ~]# mysql -hip地址 -P3307 -utest -ptest

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 140

Server version: 5.7.21-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use dba_test;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+--------------------+

| Tables_in_dba_test |

+--------------------+

| user |

+--------------------+

1 row in set (0.00 sec)

mysql> insert into user(user_id,username) values(4,'d');

Query OK, 1 row affected (0.00 sec)

mysql>

init-connect mysql_MySQL利用init-connect增加访问审计功能异常相关推荐

  1. mysql利用init-connect增加访问审计功能的实现

    mysql的连接首先都是要通过init-connect初始化,然后连接到实例. 我们利用这一点,通过在init-connect的时候记录下用户的thread_id,用户名和用户地址实现db的访问审计功 ...

  2. 微信朋友圈是访问腾讯服务器吗,微信朋友圈疑似增加“来访”新功能?网友:再也不看朋友圈了!...

    原标题:微信朋友圈疑似增加"来访"新功能?网友:再也不看朋友圈了! 微信朋友圈疑似增加"来访"新功能?网友:再也不看朋友圈了! 作为当今中国最大的社交软件,微信 ...

  3. 17101701_CentOS7下利用init.d启动脚本实现tomcat开机自启动

    在之前的博文中已经对CentOS7下通过tomcat进行WEB系统的发布进行了介绍,今天将利用init.d启动脚本,将服务脚本加入到开机启动服务队列,实现tomcat服务的开机启动. 1. 环境准备 ...

  4. http协议 git服务器,利用Nginx搭建HTTP访问的Git服务器

    利用Nginx搭建HTTP访问的Git服务器过程记录.搭建 Git 仓库,实现 SSH 协议.配合 Nginx 实现 HTTP 协议拉取.推送代码.利用 Nginx 实现 Gitweb 在线浏览代码, ...

  5. Android系统init进程启动及init.rc全解析

    这是一篇用心写的博客,也希望大家用心看并帮忙找到文章的改进之处,谢谢: 服务启动机制 system/core/init/init.c文件main函数中parse_config_file(init.rc ...

  6. Windows防火墙增加访问端口

    如果你用Windows做服务器,假如你的服务使用了81端口,默认从外面是不能访问的,需要做防火墙的设置. 打开"控制面板"-检查防火墙状态 点击左侧-高级设置 点击左侧-入站规则- ...

  7. android init(system/core/init/init.c)分析

    转自:http://blog.csdn.net/wuyun2009/article/details/5656241 在Android系统启动时,内核引导参数上一般都会设置"init=/ini ...

  8. swift5自定义构造函数和自定义变量报required init?(coder: NSCoder) { fatalError(“init(coder:) has not bee错问题

    swift5自定义构造函数和自定义变量报required init 全局类下 UIViewController,通过构造方法传递属性值.还有一种方法,通过属性监听去给给viewController 传 ...

  9. Ubuntu10.04No init found. Try passing init= bootarg解决方案

    在正常状态下误敲 fsck 命令后,果断悲剧. 屏幕错误提示 错误显示类似于: mount: mounting /dev/disk/by-uuid/************************** ...

最新文章

  1. mqtt 负载均衡_EMQ百万级MQTT消息服务(分布式集群)
  2. php获取当月开始和结束的时间戳,PHP获取今天开始和结束的时间戳
  3. 解决set /p yn= 接受键盘输入导致ECHO 处于关闭状态的问题
  4. MYSQL学习01--MySQL基础知识
  5. 小汤学编程之JavaEE学习day04——EL表达式、JSTL
  6. 瑞幸咖啡:陆正耀继续担任董事和董事长
  7. 实验三:分别用for、while和do-while循环语句以及递归方法计算n!,并输出算式...
  8. 教你怎么短期内备考并通过PMP考试!
  9. MATLAB(五) 图像处理--图像分割
  10. html5的文件操作系统,目录 - 基本操作 - DirectoryEntry《 HTML5:文件系统 》
  11. 西门子g120变频器接线图_西门子S7—1500第二十二讲(G120变频器第二篇)
  12. 认知神经科学常用的研究工具和技术
  13. C#获取单个字符的拼音声母
  14. 一个自动化专业的工控人自学编程之路
  15. win7计算机共享设置密码,如何为Win7旗舰系统的共享文件夹设置密码
  16. html5体感游戏开发,使用HTML5开发Kinect体感游戏
  17. Hackthebox:Devel Walkthrough
  18. leetcode 39. Combination Sume (medium)
  19. 短诗整理1——奋进+惜时
  20. 百度智能音箱入局正当时,如何平台+硬件两不误?

热门文章

  1. R语言glm拟合logistic回归模型:模型评估(计算模型拟合的统计显著性)、模型评估(赤信息AIC指标计算)
  2. python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标、时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析
  3. R安装包源设置的常见方式及国内常用源
  4. 样条+样条函数+样条分析+spline+样条插值+样条回归
  5. 随机投影(Random Projection)降维方法
  6. 局部变量 final Java_Java局部变量final
  7. 统计学原理----描述性统计
  8. Comparative assessment of long-read error-correction software applied to RNA-sequencing data
  9. MySQL安装查看密码修改密码
  10. 论文笔记 DNorm: disease name normalization with pairwise learning to rank