前言
應公司dba的需求,做了一個sql審核並可以執行、記錄的系統,整個系統有三種角色:
DBA(需要管理員手動登記)
運維人員(需要管理員手動登記)
開發人員(默認注冊后用戶)
權限分配如下:

一些功能展示
先要感謝前任武大神留下的前端模板,在后續的開發節省了大量的時間,我也就拿過來直接用了。
由於是在公司使用的代碼,源碼不能開源,下邊是一些展示截圖,后續會把這個系統涉及到的一些自認為關鍵的知識點整理出來,分享一部分代碼。
- 登錄界面

- 注冊界面

- 忘記密碼

注冊、忘記密碼這塊可以通過郵箱拿到一個驗證碼,然后通過驗證碼來進行驗證,后邊博客會詳細介紹這塊代碼的實現。
生成隨機驗證碼的部分參考我之前的博客http://www.cnblogs.com/caseast/p/4797930.html ,驗證碼插件部分 - 登錄后的首頁展示

這個是權限最大的DBA用戶的頁面,開發、運維會略有不同,功能要少一些 都是傻瓜式的操作,確認sql即為dba審核,審核后運維才可以在生產上執行。另外還專門為dba提供了一個預發布環境,用於上線前,DBA可以現在預發布環境跑一遍sql,之后再通過審核。邏輯圖如下:

- 提交新增sql


會對開發提交的sql做一個正則匹配,不同的方向包含的庫不同,如果提交的語句使用的庫名不在方向列表中,會進行提示,另外如果sql中有一些危險語法,也會做初級的判斷,不允許提交。 - sql高亮提示

- 變更流程展示

- 執行過程展示

執行完畢后會在已上線SQL日志中進行展示,啟動的任務由celery+redis異步進行分發處理 - 執行結果展示

- 支持多條件聯合搜索

總結
目前這套系統已經部署上線,投入使用了,比起之前的審核系統,主要加入了較全面的日志記錄和預發布功能。部分代碼分析還請等待后邊的博客。
