龙空技术网

MYSql审计工具Yearning的安装与使用

硕果累累1316 448

前言:

眼前我们对“mysql数据库审计功能怎么开”大约比较重视,各位老铁们都想要剖析一些“mysql数据库审计功能怎么开”的相关文章。那么小编同时在网络上汇集了一些有关“mysql数据库审计功能怎么开””的相关文章,希望同学们能喜欢,姐妹们一起来学习一下吧!

一、背景介绍

Sql审计就是对需要在数据库执行的ddl、dml、select语句进行检查,避免sql在执行时出现问题。通过sql审核可以减少在正式执行时出现问题,也可以规避sql执行时的风险

Sql问题包括:

语法错误:sql语法结构不正确,标点符号不正确等

语义错误:sql中的库名、表名、字段名等不正确

规则错误:不符合sql规范,没有指定主键、字段类型不正确等

人工审核:

1、DBA与开发人员,循环交互。DBA发现问题sql返给开发修改,开发修改后, DBA进行二次检查,循环审核,直到sql没有问题

2、审核时间长,效率低。项目上线会有大量的sql进行审核,人工审核时间较长。

3、主观性:不同DBA对sql规范的理解不同,会存在宽松不均的问题

4、执行前需要检查数据库环境及sql影响范围,备份然后执行,过程冗长

5、执行后检查

二、功能与版本

基于人工审核的成本较高并且不可控性因素较多,自动审核工具应运而生。

Yearning是集审核、执行、回滚于一体的一个自动化运维系统。

版本:

1、yearning v1.4.7及以下版本:

基于inception,需要自行配置安装inception,现inception已整合进arkcontrol数据库云管平台

2、yearning -go 2.0.0及以上版本:

提供二进制安装,不依赖于任何第三方sql审核工具作为审核引擎,内部已自己实现审核\回滚相关逻辑

三、安装

版本:yearning v2.15

版本介绍:

1、mysql版本必须是5.7及以上版本,自行安装mysql及创建yearning数据库,字符集 为:utf-8/utf8mb4

2、仅要求存放yearning数据库的mysql版本为5.7及以上,其他数据库不做要求

3、yearning日志仅输出error级别,没有日志即可认为无运行错误

4、推荐使用chrome浏览器最新版本

下载地址:github.com/cookieY/Yearning/releases

官方文档:guide.yearning.io/install.html

安装步骤:

1、下载: (如果不能下载,请在github前加 https://)

git clone github.com/cookieY/Yearning.git

2、解压:

# unzip Yearning-2.1.5.linux-amd64.zip

# mv Yearning-go/ /usr/local/

3、创建yearning的数据库

> create database Yearning;

4、修改Yearning配置文件

[root@hadoop03 Yearning-go]# cat conf.toml

[Mysql]

Db = "Yearning"

Host = "127.0.0.1"

Port = "3306"

Password = "123"

User = "root"

[General] #数据库加解密key,只可更改一次

SecretKey = "dbcjqheupqjsuwsm"

5、初始化Yearning,初始化会生成用户名、密码,打印到屏幕

# ./Yearning -m

6、配置环境变量、设置后台启动脚本、设置开机自启

# cat start_Yearning.sh

nohup Yearning -s -b "192.168.100.222" -p "8000" >>/usr/local/Yearning-go/yearning.log 2>&1 &

7、启动Yearning

# bash start_Yearning.sh

四、使用

1、添加用户及赋权

密码最少6字符

角色:分管理员/执行者/使用人

先划分角色,使管理类权限不会出现在使用者细粒度权限划分中

管理员:是sql的审核者和执行者

查看db1106_user权限:新用户不具备任何权限的。任何操作都必须在赋予对应的权限之后才能执行

用户权限的赋予有两种方式:

1、管理员在"用户权限"页面,自行添加

2、使用者在:“首页个人信息栏”---“查看权限按钮”---“申请权限”,进行申请,该权限申请将会以工单的形式发送给超级管理员进行审批

使用db1106_user用户登录:申请权限

管理员查看工单:

2、添加数据源:用户可访问的数据源,在用户权限页添加,

注:数据源的最细粒度为实例级别,不能将单个库的权限赋给使用者

3、sql查询

用户通过如下页面进行sql查询,点击提交,选中要查询的数据源

管理员可以在如下界面,查看使用者sql查询的详细信息:

管理员终止使用者的sql查询:

sql查询的限制及设置:

通过进阶设置,可以设置不让使用者看到的库,敏感字段,查询是否需要审核,是否同意导出查询数据,sql查询时限等

设置sql查询限制后,再进行sql查询:需要管理员审核

4、提交ddl工单

5、审核:

审核规则:Pt-OSC设置 即 pt-online-schema-change

Sql语句:

Select:

select * from t4 where inserttime >=current_date();

Dml:

update t4 set c1='lll' where id=3;

Ddl:

alter table t4 add c2 varchar(10) ;

CREATE TABLE `t4` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`c1` varchar(10) DEFAULT NULL,

`inserttime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

标签: #mysql数据库审计功能怎么开