Docker 安装 数据库工单系统Yearning以及使用
文档以及部署什么是Yearning?一个强大且本地部署的平台专为数据库管理员DBA和开发人员设计提供无缝的SQL检测和查询审计。专注于隐私和效率为MYSQL审计提供直观且安全的环境。功能AI 助手我们的AI助手提供实时SQL优化建议提升SQL性能。同时支持文本到SQL的转换允许用户输入自然语言并接收优化后的SQL语句。SQL 审计创建具有审批工作流和自动语法检查的SQL审计工单。验证SQL语句的正确性、安全性和合规性。为DDL/DML操作自动生成回滚语句并提供全面的历史记录以便追溯。查询审计审计用户查询限制数据源和数据库并匿名化敏感字段。查询记录被保存以供将来参考。检查规则我们的自动语法检查器支持多种检查规则适用于大多数自动检查场景。隐私保护Yearning是一个本地部署的开源解决方案确保您的数据库和SQL语句的安全。它包括加密机制以保护敏感数据即使在未经授权的访问情况下也能确保数据安全。RBAC基于角色的访问控制创建和管理具有特定权限的角色根据用户角色限制对查询工单、审计功能和其他敏感操作的访问。官方文档以及地址Yearning GuideGitHub - cookieY/Yearning: A most popular sql audit platform for mysql环境准备单独使用docker时请先创建数据库并设置字符集为utf8mb4docker初始化初始化SECRET_KEY必须位16位不然后续有坑dockerrun--rm-it\-p8000:8000\--add-hosthost.docker.internal:host-gateway\-eSECRET_KEYK8xP2mQ7vN4rT9aL\-eMYSQL_USERroot\-eMYSQL_PASSWORD123456\-eMYSQL_ADDRhost.docker.internal\-eMYSQL_DByearning\-eY_LANGzh_CN\yeelabs/yearning /opt/Yearninginstall初始化后会拿到admin的账号和密码初始化完成后可以在库里看到yearning相关的的表docker部署此处填写刚刚初始化的数据即可dockerrun-d\--nameyearning\-p8000:8000\--add-hosthost.docker.internal:host-gateway\-eSECRET_KEYK8xP2mQ7vN4rT9aL\-eMYSQL_USERroot\-eMYSQL_PASSWORD123456\-eMYSQL_ADDRhost.docker.internal\-eMYSQL_DByearning\-eY_LANGzh_CN\yeelabs/yearning启动完成访问http://localhost:8000/ ,输入刚刚初始化的账号和密码进入后台基础使用介绍基础菜单创建流程创建新的流程创建流程步骤此处我创建了两个步骤步骤1为审核 步骤二为执行创建数据源环境支持Aliyun和AWSDB类型支持mysql和pg测试连接成功后点击创建创建测试用户并设置权限组创建测试用户新增测试权限组,将刚刚添加的数据源赋权为测试用户设置测试权限组DML/DDL工单提交DML/DDL工单登录测试账号提交工单,此处选择的是DML就是体检的DML工单,需要提交DDL工单就切换到DDL,查询不会提交工单,只会记录查询sql后续会介绍到提交工单,选择操作数据库,数据库表以及说明提交工单,填写执行sql,填写完成后点击SQL检测,可以检测错误信息和受影响行数等信息检测没问题了,就可以提交了审核DML/DDL工单切换到admin账号,进行工单审核开始审核工单(节点1)开始点进去是不能直接同意的,需要SQL检测后才能同意审核工单节点2工单审核通过sql自动执行工单已完成数据库验证,sql执行成功工单回滚管理员可以对审核通过的工单进行回滚操作回滚和提交的工单审批节点一致审核完成执行sql验证回滚执行完成查询工单查询工单无法审批,只能记录对应人员的查询权限,可以通过不同的数据库账号来划分查询权限,不同的账号查询不同的数据库或者不同数据库表选择对应数据源选择对应数据库,执行对应查询语句管理员可以再对应页面查看的对应人员在执行查询操作点击结束,结束该人员的查询管理员可以点击详情查询对应人员的查询语句