Skip to content
hhyo edited this page May 5, 2020 · 8 revisions

SQL查询

在线查询

功能说明

在线查询模块适用于简单的SQL查询和日常问题排查,通过工作流控制查询权限的申请和审核,并强制对SQL语句进行改写以限制最大查询数量,同时记录所有的查询日志方便审计。基于目前的定位,查询功能现不能很好的支持大数据量的检索和导出操作

使用范围和限制

具体实现都在各个数据库对应的engines

支持语法 权限控制 脱敏
MySQL select、show、explain 表级(依赖goInception) √(精确列匹配,依赖Inception)
MsSQL select、sp_helptext,限制部分关键字和+号 库级 √(匹配所有列)
Redis 限制部分查询命令,参考redis.py 库级 ×
PgSQL select 库级 ×
Oracle select、with、explain 库级 √(匹配所有列)
MongoDB find 库级 ×

MySQL查询的权限控制依赖goInception的语法树打印,数据脱敏依赖Inception的语法树打印,需要完善相关配置

依赖权限

权限CODE 权限名称 权限说明
menu_query 菜单 SQL查询 一级菜单权限,必须配置
menu_sqlquery 菜单 在线查询 二级菜单权限,必须配置
menu_queryapplylist 菜单 权限管理 二级菜单权限,用于查询权限申请和管理,必须配置
query_applypriv 申请查询权限 可以申请数据查询权限
query_mgtpriv 管理查询权限 可以查看和管理资源组内的用户查询权限,支持修改结果集限制、有效时间以及删除权限
query_review 审核查询权限 可以查看和审核所在资源组的所有查询权限申请工单
query_submit 提交SQL查询 可以使用SQL在线查询,不配置时执行查询会提示无权限
query_all_instances 可查询所有实例 拥有所有实例所有数据的查询权限,无需再次申请
query_resource_group_instance 可查询所在资源组内的所有实例 拥有所在资源组实例所有数据的查询权限,无需再次申请

相关配置

参考:系统配置项

  1. 实例需要关联查询标签才能在查询功能中展示
  2. QUERY_CHECK配置项
  3. 在其他配置管理-全部后台数据中配置脱敏字段和规则

脱敏规则配置

规则类型 规则脱敏所用的正则表达式,表达式必须分组,隐藏的组会使用****代替 需要隐藏的组 规则描述
手机号 (.{3})(.*)(.{4}) 2 保留前三后四
证件号码 (.*)(.{4})$ 2 隐藏后四位
银行卡 (.*)(.{4})$ 2 隐藏后四位
邮箱 (.*)@(.*) 2 去除后缀

权限管理

查询权限管理和SQL上线一样使用工作流控制审批流程,管理员可以自主配置每个组的审批流程,用户提交申请、审批结束后才可以进行SQL查询 同时管理员在权限管理页面还可以直接编辑、删除当前用户已拥有的查询权限

数据字典