Giter VIP home page Giter VIP logo

see's Introduction

See SQL审核平台

   

API集成

  • Inception: 去哪儿网开源,提供SQL语句审核、执行、回滚功能
  • SQLAdvisor: 美团开源,提供分析SQL中的where条件、聚合条件、多表Join关系,输出索引优化建议
  • SOAR: 小米开源,提供SQL启发式算法的语句优化、多列索引优化等功能

功能简介

  • 目标库管理

    • 支持多场地/数据中心的数据库管理,集群方式归纳目标数据库
    • 支持目标数据库配置,库/表结构查询
  • SQL操作

    • 基于Inception
    • SQL语法检测
    • SQL语句执行
    • SQL回滚
    • 定时工单
    • 历史记录
  • SQL查询

    • 查询目标数据库的详细表结构
    • 查询表数据,对结果可导出文件
    • SQL语句优化(基于美团SQLAdvisor)
    • 多层次优化建议(基于小米SOAR)
  • 用户管理

    • 对用户/组的注册/注销/加组/授权等管理
  • 个性化设置

    • 管理员可以做SQL关键字拦截,平台的审批功能开关等设置
    • 用户可以订阅其常用的数据库,指定审批工单的经理,以简化审核时所需的操作
  • inception设置

    • inception服务连接信息
    • inception备份库连接信息
    • inception支持的参数释义及值
  • 人工审批功能

    • 流程开关
    • 开启流程,工单至少需双人确认(流程:提交人 -- inception自动审核 -- 经理审批 -- DBA上线)
    • 关闭流程,工单可由经理上线(流程:提交人 -- inception自动审核 -- 经理上线)
  • 用户权限

    • 基于RBAC的表级,对象级权限控制体系
    • 通过用户管理设置用户权限
    • 根据用户身份(组员/经理/总监)鉴权用户对SQL的审核/取消/执行/回滚等操作
  • 操作流程

    • 用户需要输入SQL,指定环境,执行人,数据库
    • inception自动审核SQL语法
    • 审批人做审批通过或驳回操作
    • 执行人做执行/撤销/回滚等操作
    • SQL列表界面提供SQL查询,操作等相关功能
  • API文档

    • 各接口生成自动化的API文档,对接外部需求
  • 登录

    • 支持see系统登录
    • 支持自定义公司统一认证中心(sso)登录
  • 通知

    • E-mail邮件推送
  • 其他

    • DashBoard数据报表展示

环境

  • Python 3.6

    • Django 2.0
    • Django Rest Framework 3.8
  • Vue.js 2.9

    • iview 2.8
    • iview-admin 1.3

平台使用

用户名 密码
武松 see
宋江 see

安装文档

界面展示

  • 邮件提醒

image

  • SQL查询

image

  • 工单审核

image

  • 工单详情 1

image

  • 工单详情 2

image

  • 工单详情 3

image

  • 工单列表

image

  • 平台设置

image

  • 用户管理

image

  • Dashboard审计

image

交流学习

  • QQ群 630791951

License

  • Eclipse Public License - v 2.0

Copyright © 2018 See

see's People

Contributors

lancger avatar myide avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

see's Issues

frontend 安装编译报错

文档上没有frontend的安装操作步骤,在frontend目录下执行npm install 然后在执行npm run build报错

inception 安装失败

/usr/local/inception-master/sql/sql_yacc.yy:31:23: 错误:‘yythd’在此作用域中尚未声明
#define YYTHD ((THD *)yythd)

环境:
centos7 mysql(5.6,5.7,8)均尝试,bison 2.5.1
求大神帮助

about db

Is the environment dependent on percona or mysql

工单创建后,点击执行,没有任何响应

创建一个新的工单,提交审核后,点击执行,没有任何相应,再次点击就提示工单已经锁定,等一会儿(解锁之后)在次点击就会立即执行,这个是里面是什么逻辑?是有bug还是我操作方式有问题?
我在demo平台上测试了下,创建了3个工单,一次点击执行,也偶有这个状况出现,但是比我本地的情况好很多
测试的建表语句用的utils中的那个示例,测试insert语句,结果也同上。

/usr/bin/ld: cannot find -lperconaserverclient_r

1> 编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。
#wget http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
#yum install percona-release-0.1-3.noarch.rpm -y
#yum install Percona-Server-shared-56 -y
2> 编译sqladvisor的依赖项sqlparser(源码目录)
#cd /usr/local/src/SQLAdvisor/
#cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser -DIGNORE_AIO_CHECK=/usr/share/doc/libaio-0.3.109 ./
#make && make install
3> 编译sqladvisor(源码目录)
#cd ./sqladvisor/
#cmake -DCMAKE_BUILD_TYPE=debug ./
#make

4> Finished

npm run build 报错

[root@vultr frontend]# npm run build 

> [email protected] build /root/see/frontend
> webpack --progress --hide-modules --config build/webpack.prod.config.js

clean-webpack-plugin: /root/see/frontend/dist/* has been removed.
Happy[happybabel]: Version: 4.0.1. Threads: 1 (shared pool)
fs.js:128
  throw new ERR_INVALID_CALLBACK();
  ^

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
    at maybeCallback (fs.js:128:9)
    at Object.write (fs.js:540:14)
    at /root/see/frontend/build/webpack.prod.config.js:16:8
    at FSReqWrap.args [as oncomplete] (fs.js:140:20)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `webpack --progress --hide-modules --config build/webpack.prod.config.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-06-28T07_09_09_510Z-debug.log
[root@vultr frontend]# ls dist/clean-webpack-plugin
ls: cannot access dist/clean-webpack-plugin: No such file or directory

工单审核报数据库连接错误

报错信息如下:
{"MySQL连接异常 ":"((1, 'NONE', 2, 'None', 'Invalid source infomation.', 'Global environment', 0, 'None', 'None', '0', 'None'),)"}

只有审核功能,没有查询功能吗

对比了一下see、archery、yearning,感觉archery的工作最全,包含sql审核,sql查询,binlog2sql,soar优化、sechemasync、thimes等功能。

希望see也有这些功能。

任务异常有点笼统

测试的时候发现,任务异常没有任何原因的日志出现的web页面
1 比如执行的时候warning,会出现任务异常,但是sql已经执行成功了
2 如果一大堆sql中出现一条执行报错,但是这个sql之前的也会执行成功,没有任何提示

建议:添加Dockerfile

see 项目整合了许多组件,功能强大。但于此同时,确实增加了安装的复杂性。对于想体验的同学,并不是很友好。因此建议作者添加Dockerfile,以简化安装,让新同学更方便体验。

安装步骤混乱,希望能更新。

  1. 在步骤4.2 安装依赖中,把 mysql 卸载了yum remove -y mysql-community-client mysql-community-server mysql-community-common mysql-community-libs
  2. 然后在7.4 中又做 migration
    有点莫名其妙

备份库连接失败 500 Internal Server Error

[2019-03-28 18:17:53,310][MainThread:140695313114944][task_id:django.request][exception.py:118][ERROR][Internal Server Error: /api/sqlmng/inception/conncheck/]
Traceback (most recent call last):
File "/usr/local/python3.6/lib/python3.6/configparser.py", line 1138, in _unify_values
sectiondict = self._sections[section]
KeyError: 'inception'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/seevenv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
response = get_response(request)
File "/usr/local/seevenv/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/usr/local/seevenv/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/seevenv/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/local/seevenv/lib/python3.6/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/seevenv/lib/python3.6/site-packages/rest_framework/views.py", line 483, in dispatch
response = self.handle_exception(exc)
File "/usr/local/seevenv/lib/python3.6/site-packages/rest_framework/views.py", line 443, in handle_exception
self.raise_uncaught_exception(exc)
File "/usr/local/seevenv/lib/python3.6/site-packages/rest_framework/views.py", line 480, in dispatch
response = handler(request, *args, **kwargs)
File "/usr/local/seevenv/see-master/backend/sqlmng/views/settings.py", line 122, in post
ret = func(self, request)
File "/usr/local/seevenv/see-master/backend/sqlmng/mixins.py", line 95, in inception_backup
password = self.conf.get('inception', 'inception_remote_system_password')
File "/usr/local/python3.6/lib/python3.6/configparser.py", line 781, in get
d = self._unify_values(section, vars)
File "/usr/local/python3.6/lib/python3.6/configparser.py", line 1141, in _unify_values
raise NoSectionError(section)
configparser.NoSectionError: No section: 'inception'

see报错

Traceback (most recent call last):
File "/data/vmpython/lib/python3.6/site-packages/django/core/handlers/exception.py", line 35, in inner
response = get_response(request)
File "/data/vmpython/lib/python3.6/site-packages/django/core/handlers/base.py", line 128, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/data/vmpython/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/data/vmpython/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/data/vmpython/lib/python3.6/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "/data/vmpython/lib/python3.6/site-packages/rest_framework/views.py", line 483, in dispatch
response = self.handle_exception(exc)
File "/data/vmpython/lib/python3.6/site-packages/rest_framework/views.py", line 443, in handle_exception
self.raise_uncaught_exception(exc)
File "/data/vmpython/lib/python3.6/site-packages/rest_framework/views.py", line 480, in dispatch
response = handler(request, *args, **kwargs)
File "/data/see/backend/sqlmng/views/settings.py", line 111, in post
ret = func(self, request)
File "/data/see/backend/sqlmng/mixins.py", line 127, in inception_backup
password = self.conf.get('inception', 'inception_remote_system_password')
File "/data/python3/lib/python3.6/configparser.py", line 781, in get
d = self._unify_values(section, vars)
File "/data/python3/lib/python3.6/configparser.py", line 1141, in _unify_values
print section

inception 测试无问题,可以正常进行备份,但是页面点击备份数据库连接失败

选择数据库为空

1

选择数据库时没有响应。后台应该怎么查日志?

按照安装文档安装的,每一步都成功了。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.