SQLE摆设及使用
1. 摆设SQLE
SQLE信任各人都不陌生吧,它是一款开源,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL审核工具。我们可以基于此工具进行数据库SQL审核,提升SQL脚本质量,大大进步我们的开发服从。
其主要功能和优势包括:
- 平台管理:支持用户和脚色管理、设置上线数据库、基于脚色的资源隔离、设置审核规则模板,以及对差别的数据库应用差别的规则模板。
- SQL审核:支持工单审批流程、工单隔离、邮件推送审批事件、SQL上线、天生回滚语句、审核MyBatis
- XML文件,以及审核发起按SQL归类去重展示等功能。此外,SQLE还支持审核陈诉下载,并提供静态审核(即离开上线数据库审核)和定时审核功能。
- SQL审核计划:支持通过标准接口网络来自业务的SQL统计信息,提供MyBatis文件扫描上传步伐(scanner),可集成CI/CD。
SQLE3.0在SQL审核方面具有高效性和准确性的双重优势。它能够主动化地对SQL语句进行审核,从而减少了人工审核的工作量和错误率。此外,SQLE 3.0还具备强大的规则引擎,可以通过预设规则对SQL语句进行灵活的审核和检测,从而保证了SQL语句的规范性和安全性。
与其他数据库审核工具相比,SQLE具有其独特的优势。比方,本地数据库平台虽然简朴,但分析范围有限,且需要人为管理。而DAM数据库活动监控平台和SIEM、日记管理工具虽然功能更多,但可能会消耗本地数据库性能。SQLE则通过提供全面的审核功能和高效的审核服从,为用户提供了更好的选择。
下载地址:https://github.com/actiontech/sqle/releases
安装:
创建SQLE元数据存储库(mysql中): create database sqle
修改设置:修改设置文件名,并按需修改端口、元数据数据库信息
启动sqle: systemctl start sqled
2. SQLE使用
功能列表如下:
已有的审核规则 如下,各人可以摆设后自行查看
设置数据源:需设置具体实例、用户信息、审核规则模板、开启审核等
创建审核任务:
点击下方审核
审核效果如下
3. 调用审核接口
审核接口:http://ip:port/v1/tasks/audits
先获取token
使用postman调用接口进行审核:需输入token 、instance_name、instance_schema 、sql
输入token:
提交待审核SQL
查看审核效果 :
http://ip:10000/v1/tasks/audits/9/sqls?page_index=1&page_size=10&no_duplicate=false
注:数据库SQL脚本的审核是相称紧张的一项工作,发起使用SQL审核工具进行审核,提升SQL质量。下一篇将通过代码来调用对应的接口并获得审核效果。
SQLE接口调用
1、创建自界说审核接口
因直接调用SQLE的审核接口,会出现token过期,且审核及效果查询接口是分开的,因此,出于以上2个原因的考虑,重新编写一个接口用于调用SQLE的审核接口并返回审核效果。参考代码如下:
- # coding=utf-8
- import requests
- from flask import request
- import json
- from flask import Flask
- app = Flask(__name__)
- @app.route('/audit_task', methods=['post','get'])
- def audit_task():
- get_data = request.args.to_dict()
- v_instance = get_data.get('instance')
- v_schema = get_data.get('schema')
- v_sql = get_data.get('sql')
- v_token = get_token()
- v_headers = {'Authorization': f"{v_token}"}
- #print(v_headers)
- url = 'http://127.0.0.1:10000/v1/tasks/audits'
- v_data_a = {'instance_name':v_instance,'instance_schema':v_schema,'sql':v_sql}
- #print(v_data_a)
- res = requests.post(url, data=v_data_a, headers=v_headers)
- v_taskid=res.json()['data']['task_id']
- url2='http://127.0.0.1:10000/v1/tasks/audits/'+str(v_taskid)+'{/sqls?page_index=1&page_size=10&no_duplicate=false'
- # print(url2)
- res2 = requests.get(url2, headers=v_headers)
- audit_result = res2.json()['data'][0]['audit_result']
- if not(audit_result):
- audit_result=f'审核通过'
- return audit_result
- def get_token():
- url = 'http://127.0.0.1:10000/v1/login'
- data = {"username": "admin", "password": "xxxx"}
- # res = requests.post(url, json=data)
- h = {
- 'Content-Type': 'application/json; charset=UTF-8'
- }
- res = requests.post(url, data=json.dumps(data), headers=h)
- t = json.loads(res.text)
- #print(type(json.loads(res.text)))
- token = t['data']['token']
- #print(t['data']['token'])
- return token
- if __name__ == '__main__':
- app.run(host='0.0.0.0',port=5000, debug=True)
复制代码 注:使用时,需提前在SQLE中设置好实例信息。
2. 调用测试
运行以上接口,并使用postman调用进行测试
输入参数名特地调解了一下,以便于区别,测试环境如下
调用效果如下:
- [error]除了自增列及大字段列之外,每个列都必须添加默认值
- [error]表必须有主键
- [error]新建表必须加入if not exists create,保证重复执行不报错
复制代码 与上文效果同等,且 无需调用2次接口。
好书保举
《MySQL数据库管理与应用》
MySQL作为一款开源的关系型数据库管理系统,有着强大的功能和广泛的应用领域,对促进信息化建设、推动数字经济发展起偏紧张的作用。本书全面介绍了MySQL数据库的技术原理、应用场景和开发实践,资助读者把握MySQL数据库的基本概念和高级特性,提升数据库计划与开发的本领。全书共11章,从数据库基础知识讲起,包括数据库概述、关系型数据库计划原则、SQL语言基础等内容,渐渐深入介绍MySQL数据库的高级特性和应用技巧,如查询优化、事件管理、索引优化,延伸学习在数字经济发展情境下,数据库的发展趋势和应用等内容。此外,本书最后一章还通过两个综合应用项目将理论知识与实际应用联合在一起。
购书链接:点此进入
本书旨在通过清楚的逻辑布局、简洁易懂的语言和实际案例来资助读者快速把握MySQL数据库技术,并在实际工作中灵活运用,与时俱进地应对信息化发展的新要求,为企业和社会创造更大的价值,推动中国软件技术和数据库领域的创新和发展。无论你是数据库初学者、软件开发人员、数据库管理员照旧数据分析师,只要你对MySQL数据库感兴趣或需要在工作中应用MySQL数据库,本书都为你提供了宝贵的知识和指导。它既可以作为学习课本,也可以作为参考书。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |