前言

应公司dba的需求,做了一个sql审核并可以执行、记录的系统,整个系统有三种角色:
DBA(需要管理员手动登记)
运维人员(需要管理员手动登记)
开发人员(默认注册后用户)
权限分配如下:

一些功能展示

先要感谢前任武大神留下的前端模板,在后续的开发节省了大量的时间,我也就拿过来直接用了。
由于是在公司使用的代码,源码不能开源,下边是一些展示截图,后续会把这个系统涉及到的一些自认为关键的知识点整理出来,分享一部分代码。

  • 登录界面
  • 注册界面
  • 忘记密码

    注册、忘记密码这块可以通过邮箱拿到一个验证码,然后通过验证码来进行验证,后边博客会详细介绍这块代码的实现。
    生成随机验证码的部分参考我之前的博客http://www.cnblogs.com/caseast/p/4797930.html ,验证码插件部分
  • 登录后的首页展示

    这个是权限最大的DBA用户的页面,开发、运维会略有不同,功能要少一些 都是傻瓜式的操作,确认sql即为dba审核,审核后运维才可以在生产上执行。另外还专门为dba提供了一个预发布环境,用于上线前,DBA可以现在预发布环境跑一遍sql,之后再通过审核。逻辑图如下
  • 提交新增sql


    会对开发提交的sql做一个正则匹配,不同的方向包含的库不同,如果提交的语句使用的库名不在方向列表中,会进行提示,另外如果sql中有一些危险语法,也会做初级的判断,不允许提交。
  • sql高亮提示
  • 变更流程展示
  • 执行过程展示

    执行完毕后会在已上线SQL日志中进行展示,启动的任务由celery+redis异步进行分发处理
  • 执行结果展示
  • 支持多条件联合搜索

    总结

    目前这套系统已经部署上线,投入使用了,比起之前的审核系统,主要加入了较全面的日志记录和预发布功能。部分代码分析还请等待后边的博客。

【原创】SQL审核系统的更多相关文章

  1. 中小团队快速构建SQL自动审核系统

    SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证.为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Incep ...

  2. SQL审核 Inception 中小团队快速构建SQL自动审核系统

    SQL审核与执行,作为DBA日常工作中相当重要的一环,一直以来我们都是通过人工的方式来处理,效率低且质量没办法保证.为了规范操作,提高效率,我们决定引入目前市面上非常流行的SQL自动审核工具Incep ...

  3. SQL Server 系统数据库恢复

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/故障恢复/master 概述 SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关 ...

  4. inception 自动化sql审核

    ##概念: Inception是一款自动化运维的利器,有别与现在各个公司使用的方式,使用Inception,将会给DBA带来最大的便利性,将DBA从繁冗的工作中解放出来,做一些更多的自动化工作,或者从 ...

  5. SQL Server系统函数:系统信息函数

    原文:SQL Server系统函数:系统信息函数 1.会话id,服务器信息.用户信息 select @@SPID, --返回当前连接的会话ID:SPID @@servername, --SQL Ser ...

  6. SQL Server系统函数:字符串函数

    原文:SQL Server系统函数:字符串函数 1.字符转化为ASCII,把ASCII转化为字符,注意返回的值是十进制数 select ASCII('A'),ASCII('B'),ASCII('a') ...

  7. SQL Server系统函数:日期函数

    原文:SQL Server系统函数:日期函数 1.返回当前日期和时间 select GETDATE() '当前日期-精确到33毫秒' select GETUTCDATE() 'UTC日期和时间-精确到 ...

  8. SQL Server系统函数:元数据函数

    原文:SQL Server系统函数:元数据函数 1.列的长度.列名 --列的长度 select COL_LENGTH('dbo.wct', --表名 'wcid') --列名 --列名 select ...

  9. SQL Server系统函数:类型转换函数

    原文:SQL Server系统函数:类型转换函数 1.基本的转化 SELECT CAST(2008 as varchar(4)) + ' year!' SELECT CONVERT(varchar(4 ...

随机推荐

  1. 谢欣伦 - OpenDev原创教程 - 服务端套接字类CxServerSocket

    这是一个精练的服务端套接字类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxServerSocket的使用如下(以某个叫做CSo ...

  2. IOAPIC重定位中断处理函数思路整理

    因为小可并非硬件编程出身,汇编基础又比较差...所以刚开始理解利用IOAPIC重定位技术的时候相当困难. 何为IOAPIC? 首先,必须认识到它是一个硬件,可编程的硬件.我理解的它在整个流程中的作用如 ...

  3. Code First开发系列之管理数据库创建,填充种子数据以及LINQ操作详解

    返回<8天掌握EF的Code First开发>总目录 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LINQ to ...

  4. Mycat 全局系列号

    标签:utf8 概述 本篇文章介绍mycat怎样在分库分表的情况下保证主键的全局唯一方法,接下来就来分析三种方法各自的优缺点. 配置 文件方式获取 1.修改server配置文件 vim server. ...

  5. python实现grep

    import sys import os import re def usage(): print "[Usage]: python grep.py filename grepString. ...

  6. Improve Your Study Habits

    1.Plan your time carefully. Make a list of your weekly tasks.Then make a schedule or chart of your t ...

  7. SQL Azure (18) 使用External Table实现垮库查询

    <Windows Azure Platform 系列文章目录> 问题 1.我们在进行SQL Server开发的时候,经常会使用垮库查询.但是在默认情况下,使用Azure SQL Datab ...

  8. Win8换成Win7系统问题小结(修改主板BIOS方法)

    问题描述: 笔记本电脑W8系统使用不习惯,想要换成W7系统,但不管是用光盘安装亦或是用U盘安装,在设置系统启动项的时候,选择从光盘启动或从U盘启动,但是回车点了之后没反应. 下面就说说问题的原因及解决 ...

  9. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  10. Atitit  数据库的事件机制--触发器与定时任务attilax总结

    Atitit  数据库的事件机制--触发器与定时任务attilax总结 1.1. 事件机制的图谱1 2. 触发器的类型2 3. 实现原理 After触发器 Vs Instead Of触发器2 3.1. ...