Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

娓娓而谈
• 阅读 416

SQL 审核,实际上也是对 SQL 的标准化管理。而人工审核时代,针对数据库规范其实是很难落地的,规范越多,DBA越累,开发也越累。

大多数情况下,人工审核 SQL 的代价太高,在规范落地和监督约束方面难以把控。很多情况下,性能隐患会给线上环境带来极大的影响,可能是影响业务使用,也可能直接关系数据。

今天 Gitee 推荐的这款开源好物,就是一款 Web 端可视化的 SQL 审核平台,一起来看看吧。

项目名称: Yearning

项目作者: HenryYee

开源许可协议: AGPL-3.0

项目地址:https://gitee.com/cookieYe/Yearning

项目简介

Yearning 是一款可满足大部分公司 SQL 审核需求的 Web 端可视化 SQL 审核平台。在实现常规的 SQL 审核功能外还添加了诸如数据查询等一系列便捷的功能。

项目功能

  • SQL 查询

    • 查询工单
    • 导出
    • 自动补全,智能提示
    • 查询语句审计
  • SQL 审核

    • 流程化工单
    • SQL 语句检测与执行
    • SQL 回滚
    • 历史审核记录
    • 自定义审核层级
  • 推送

    • E-mail 工单推送
    • 钉钉 webhook 机器人工单推送
  • 用户权限及管理

    • 角色划分
    • 基于用户的细粒度权限
    • 注册
  • 其他

    • todoList
    • LDAP 登录
    • 动态审核规则配置
  • AutoTask 自动执行

项目截图

Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

登录页

Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

首页

Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

审核

Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

SQL 语法高亮及自动补全

Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

查询

Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

细粒度的权限分配

Go+Vue实现的高颜值SQL审核平台,兼容99%SQL语法

我的工单

语法支持

Yearning 目前兼容99%的 Mysql 标准 SQL 语法。 但由于审核逻辑等因素的限制,对一些 SQL 语句并不能保证得到正确的反馈 已知不支持的语句类型有:

  • 复杂的查询语句(多表,多函数,非必现。并不是所有复杂语句不支持)
  • 外键相关语句
  • 不支持跨库DML语句的回滚
  • 存储过程/触发器

(仅代表当前语法支持进度,并不作为未来完成度)

注意事项

  • Yearning 不依赖于任何第三方 SQL 审核工具作为审核引擎,内部已自己实现审核/回滚相关逻辑。
  • 仅依赖 Mysql 数据库。
  • mysql 版本必须5.7及以上版本,请事先自行安装完毕且创建 Yearning 库,字符集应为 UTF8mb4 (仅 Yearning 所需 mysql 版本)
  • Yearning 日志仅输出 error 级别,没有日志即可认为无运行错误!
  • Yearning 基于 1080p 分辨率开发仅支持 1080p 及以上显示器访问
  • 由于使用较多新的前端技术栈,请使用 Chrome 最新版本(不包括 360 等其他魔改版本)

如果你想要了解更多项目详情,那么就点击后面的链接去项目主页看看吧:https://gitee.com/cookieYe/Yearning

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Wesley13 Wesley13
3年前
SQL解析在美团点评中的应用
数据库作为核心的基础组件,是需要重点保护的对象。任何一个线上的不慎操作,都有可能给数据库带来严重的故障,从而给业务造成巨大的损失。为了避免这种损失,一般会在管理上下功夫。比如为研发人员制定数据库开发规范;新上线的SQL,需要DBA进行审核;维护操作需要经过领导审批等等。而且如果希望能够有效地管理这些措施,需要有效的数据库培训,还需要DBA细心的进行SQL审核
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Bypass ngx_lua_waf SQL注入防御(多姿势)
0x00前言ngx\_lua\_waf是一款基于ngx\_lua的web应用防火墙,使用简单,高性能、轻量级。默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则:select.(from|limit)(?:(union(.?)select))(?:from\Winformation_schema\W)这边
Stella981 Stella981
3年前
Hibernate纯sql查询结果和该sql在数据库直接查询结果不一致
问题:今天在做一个查询的时候发现一个问题,我先在数据库实现了我需要的sql,然后我在代码中代码:selectdistinctd.id,d.name,COALESCE(c.count_num,0),COALESCE(c.count_fix,0),COALESCE(c