Archery Versions Save

SQL 审核查询平台

v1.6.2

4 years ago

Release date: 2019年6月16日

代码变更:https://github.com/hhyo/Archery/compare/v1.6.1...v1.6.2

变更说明:

  • 拆分资源组关联表,用户和实例添加页面新增资源组关联操作,便于维护 #190 #239
  • 增加 SQL 上线可执行时间范围选择,且审核人可修改这个时间 #251 #260
  • 实例配置增加默认字符集设置,适用于 MySQL、Oracle、MsSQL #274
  • MySQL 在线查询的权限校验放行 explain 和 show create 语句https://github.com/hhyo/Archery/commit/ed0caf25300b05cdc36c04f7bddce5f42f2d55a7
  • MsSQL 在线查询添加可执行命令白名单及允许执行 sp_helptext 命令 #246 #273

易用性改进:

修复说明:

  • 修复 Oracle 在线查询中,查询列包含 clog 类型时不能正常查询的问题 #250
  • 修复 Django 后台查询权限列表,筛选用户时报500错误的问题 #261
  • 修复 pyodbc 不识别 GO 语句的问题,使用 GO 作为关键字切分 sql 再执行通过 #263
  • 修复 MsSQL 数据库过滤项错误的问题 #267
  • 修复 MySQL 在线查询中,用户仅申请表权限,当查询语法错误时却提示没有库权限的问题https://github.com/hhyo/Archery/commit/ed0caf25300b05cdc36c04f7bddce5f42f2d55a7

升级步骤:

v1.6.1

4 years ago

Release date: 2019年6月1日

代码变更:https://github.com/hhyo/Archery/compare/v1.6.0...v1.6.1

变更说明:

易用性改进:

修复说明:

  • 修复执行异常不修改工单状态的问题 #156
  • 修复 LDAP 启用后报错,找不到 LDAPSearch 方法的问题 #222
  • 修复 sql 导出字段的引号问题,fix #228
  • 修复定时执行上线工单超时的问题,fix #231
  • 修改 mssql 连接串,解决实例不能连接问题 #235
  • 修复实例列表搜索报错的问题 fix #237
  • 修复注册用户时密码复杂度不够仍能注册成功的问题 fix #243

升级步骤:

v1.6.0

5 years ago

Release date: 2019年5月22日

代码变更:https://github.com/hhyo/Archery/compare/v1.5.3...v1.6.0

变更说明: 本次更新新增了两个重要的功能点

  1. 新增了oracle 引擎, 支持oracle 查询, 上线, 但没有备份和自动生成回滚语句功能 #144 #175
  2. 新增了实例标签, 不再使用"主库/从库"这种类型, 详见 #152 #162

其它功能点:

  • redis 查询增加说明文档 #157
  • redis 查询禁止keys命令 #157
  • mysql引擎默认字符集改为utf8mb4 #161
  • 新增手工执行工单逻辑, 仅使用archery做工单流程记录, 实际执行由手工完成 #178
  • 新增了一个添加注释的sql语句, 可供规范化使用, 方便dba管理 #155
  • 新增了一个权限 query_all_instances , 拥有该权限的用户, 永久拥有查询所有数据库的权限, 不需申请. #199
  • 新增了一个系统配置项, enable_backup_switch , 当这个配置项打开时, 才能在提交工单时看到并选择关闭备份, 不打开或未设置时, 不显示备份选项, 系统强制备份 #200

修复说明:

  • 修复库名中有特殊符号时, 执行任何语句都失败的问题 #164 #166 #167
  • binlog2sql 选择解析时间后无法获取结果 #209

升级步骤:

v1.5.3

5 years ago

Release date: 2019年4月25日

代码变更:https://github.com/hhyo/Archery/compare/v1.5.2...v1.5.3

变更说明:

  • 支持自主配置系统index路径,新增配置项INDEX_PATH_URL
  • 增加Redis查询帮助说明

修复说明:

  • 解决在线查询选择max后报错的问题 #151

升级步骤:

v1.5.2

5 years ago

Release date: 2019年4月21日

代码变更:https://github.com/hhyo/Archery/compare/v1.5.1...v1.5.2

变更说明:

  • 支持使用goInception替代Inception审核,Inception已停止维护,推荐切换到goInception #136
  • 加密数据在不做修改的情况下,不做二次加密 #114
  • docker内增加Microsoft ODBC Driver for SQL Server,配置实例地址即可使用,无需再次安装 #135
  • 去除SQL上线输入框的提示信息,避免配置多数据库时误导用户
  • 修改获取实例元数据的返回格式,便于展示异常信息 #135

易用性改进:

  • 增加权限清理脚本,可使用该脚本清理非业务权限,但不推荐,del_permissions.sql #133
  • Redis上线默认不显示备份选项(未实现备份)
  • SQL分析先提交分析再弹出提示信息
  • 回滚页面表格样式调整

升级步骤:

v1.5.1

5 years ago

Release date: 2019年4月17日

代码变更:https://github.com/hhyo/Archery/compare/v1.5.0...v1.5.1

Bug修正版:

  • Fixed #127 Redis查询超时

升级步骤:

v1.5.0

5 years ago

Release date: 2019年4月14日

代码变更:https://github.com/hhyo/Archery/compare/v1.4.5...v1.5.0

对应开发计划:https://github.com/hhyo/Archery/projects/4 本次迭代主要改动Engine相关模块,方便其他数据库的接入,Engine贡献者 @LeoQuote 🎉🎉🎉

ps: gh-ost和pt-osc的接入和进度展示推迟,会和原生执行一并实现,欢迎在对应issue中交流:https://github.com/hhyo/Archery/issues/4

变更说明:

  • 增加实例参数配置模块,可修改实例动态参数并记录修改历史,目前仅支持MySQL,rds_param_template.sql #115 感谢 @yyukai ❤️
  • 清理查询模块和工单模块代码,便于接入各种类型的数据库 #83 #92
  • 使用Engines接入Redis查询 #86
  • 使用Engines接入PostgreSQL查询 #91
  • 使用Engines接入Redis上线,审核不做判断,仅作为接入样例 #101
  • 增加在线查询超时时间配置,对应配置项max_execution_time,超时连接主动关闭 #125
  • 升级部分前端组件,具体升级列表可查看 #93
  • 查询权限审核详情增加最后操作信息,比如驳回原因
  • 调整部分列表的获取方式,由于存在效率问题,慢日志列表未做修改
  • 部分字段模型定义修改为布尔值
  • Engines的测试用例覆盖

安全改进:

  • 配置项中增加会话过期和失效设置

易用性改进:

  • 实例列表增加数据库类型筛选项
  • 功能获取的实例列表按照支持的数据库类型进行过滤
  • ace的language默认设置为mysql
  • 表格样式细节优化

修复说明:

  • 解决sql_tuning表解析失败时的前端展示问题, fix #122

升级步骤:

  • 本次迭代涉及数据模型调整, 升级请注意数据备份,具体请查看 v1.4.5_v1.5.0.sql
  • 升级步骤查看wiki:https://github.com/hhyo/Archery/wiki/升级

v1.4.5

5 years ago

Release date: 2019年3月24日

本次迭代涉及到比较多的数据模型调整, 升级请注意数据备份,具体请查看 v1.4.3_v1.4.5.sql 本次迭代对应开发计划:https://github.com/hhyo/Archery/projects/2

变更说明:

  • 新增SQL分析模块,使用SORA分析MyBatis的XML文件和SQL脚本文件(初版待优化) #3
  • SQL执行权限区分资源组粒度和提交人粒度,支持提交人自助执行审核通过的工单 #74
  • binlog2sql以plugin的形式对接,降低代码复杂度 #78
  • 增加binlog2sql解析结束的消息通知,支持异步获取binlog解析文件 #78
  • 实例管理新增binlog清理功能,需要配置权限binlog_del
  • 拆分SQL工单表的大字段到单独的内容表 #77
  • 把一些关联字段从name改成ID 包括权限、用户、实例、查询日志等的互相关联 #71
  • 删除注释使用sqlparse实现,提高可靠性
  • 补充soar拓展方法,后续可以实现一个小工具页面
  • 比较多的测试用例覆盖

易用性改进:

  • 权限管理页面搜索易用性改进,支持用户名、库、表搜索 #75
  • 支持刷新按钮获取新的实例锁信息
  • themis添加规则页面易用性改进,支持显示规则详细,并且支持编辑 #76
  • 发布themis任务时,非对象类型必须选择起止日期
  • 工单列表名称超过20字的隐藏,悬浮显示
  • 调整依赖,去除启动的DeprecationWarning日志
  • 调整日志设置,避免多次打印错误信息

修复说明:

  • 升级bootstrap-table和export插件版本到最新版,修复导出excel格式显示文件已损坏的问题
  • 修复SQLTuning无法解析多个表的问题
  • 更新实例信息中实例名称导致用户查询权限失效[ bug ] #67
  • 解决关闭inception检测后子查询语句仍无法正常查询的问题
  • 支持工单执行异常的信息展示和状态变更,例如执行过程中inception崩溃仍可以正常展示工单

升级步骤:

由于涉及数据变更,请注意数据备份,再执行数据库变更脚本 v1.4.3_v1.4.5.sql,更新服务

docker部署:

  • 修改yaml文件为1.4.5版本,执行docker-compose -f docker-compose.yml up -d
  • 系统设置内的BINLOG2SQL配置项路径调整为/opt/archery/src/plugins/binlog2sql/binlog2sql.py

手动部署:

  • 拉取tag1.4.5的代码,更新依赖pip install -r requirements.txt
  • 手工安装binlog2sql后修改系统设置内的BINLOG2SQL配置项路径
  • 重新启动服务

v1.4.3

5 years ago

Release date: 2019年3月7日

变更说明: 本次变更涉及到历史数据的更改, 请注意

  • 将数据库存储的工单状态从中文的“工单已完成”, “等待审核人审核” 等改为 “workflow_finish”, "workflow_manreviewing", 代码中所有涉及到中文的判断也随之改成新的英文状态判断,网页展示的状态使用国际化组件将状态转为中文。这样便于后期更改展示文案, 也精简了代码的判断逻辑
  • soarsqladvisor 转为插件, 将这两个软件安装在sql/plugins 文件夹内,并且抽象了一些plugin的方法,方便拓展 #59
  • 优化SQL查询结果页的tab新增逻辑,查看表结构时tab页显示表名
  • 回滚页面增加导出功能,查询历史增加完整SQL列(默认隐藏)
  • display修改为not null,避免出现无中文名时的错误信息
  • 修改列表获取count和数据的方式,代码更简洁
  • 消息模块和SQL优化模块代码清理

修复说明:

  • 修复 #62
  • 修复 #56
  • 修复 #53

升级步骤:

由于涉及到工单状态, 建议先停服务,再执行数据库变更脚本 v1.4.2_v1.4.3.sql之后更新服务

docker部署:

  • 修改yaml文件为1.4.3版本,执行docker-compose -f docker-compose.yml up -d
  • SQLADVISOR_PATH路径调整为/opt/archery/src/plugins/sqladvisor
  • SOAR_PATH路径调整为/opt/archery/src/plugins/soar

手动部署:

  • 拉取tag1.4.3的代码
  • 安装gettext(用于国际化展示) yum install gettext
  • 重新启动服务

v1.4.0

5 years ago

Release date: 2019年2月3日

PS:本次更新移除了PT-OSC的进度展示和暂停功能,将在后续版本中替换为gh-ost,具体见#4,有使用相关功能的请按需更新

变更说明

  • 抽象化对数据库的所有操作, 建立了一个base engine, 统一各种数据库的通用方法名, 不同类型的数据库可以分开实现 #26 #30
  • 使用引擎的方法接入SQL server的查询功能
  • 将定时和异步执行从 django_apscheduler 改为 django-Q , 提高了定时执行的可靠性,#22 #25
  • 新增设置项 DEFAULT_RESOURCE_GROUP(默认资源组名,若资源组存在在首次登录时会自动关联)、SIGN_UP_ENABLED(是否开启注册功能),ARCHERY_BASE_URL(系统首页地址, 用于钉钉和邮件发送链接使用)
  • 缓存后端替换为redis,请修改配置文件相关配置项
  • 比较多的前端调整和代码清理

修复说明

  • 修复在客户通过非80端口启动archery时, 不能在钉钉和邮箱提醒中显示正确的链接的问题,#36
  • fix #20 #21 #41

升级说明

首先执行基础数据库变更脚本v1.3.8_v1.4.0.sql

docker部署

  1. 修改yaml文件为1.4.0版本,使用最新配置文件settings.py替换,启动服务 docker-compose -f docker-compose.yml up -d
  2. 进入容器内初始化django-q的数据表
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python manage.py migrate
  1. 重新启动archery docker restart archery 手动部署
  2. 拉取tag1.4.0的代码或者下载release包,修改配置文件,并且更新依赖后启动服务 pip3 install -r requirements.txt
  3. 初始化django-q的数据表 python manage.py migrate
  4. 启动Django-Q cluster 用于工单执行和消息推送 python3 manage.py qcluster