Yearning MYSQL SQL語句審核平臺。提供查詢審計,SQL審核等多種功能
Feature 功能
SQL查詢查詢工單導出自動補全,智能提示查詢語句審計SQL審核流程化工單SQL語句檢測與執行SQL回滾歷史審核記錄推送E-mail工單推送釘釘webhook機器人工單推送用戶權限及管理角色劃分基於用戶的細粒度權限註冊其他todoListLDAP登錄動態審核規則配置AutoTask自動執行注意事項
Yearning 不依賴於任何第三方SQL審核工具作為審核引擎,內部已自己實現審核/回滾相關邏輯。
僅依賴Mysql數據庫。
mysql版本必須5.7及以上版本,請事先自行安裝完畢且創建Yearning庫,字符集應為UTF-8/UTF8mb4 (僅Yearning所需mysql版本)
Yearning日誌僅輸出error級別,沒有日誌即可認為無運行錯誤!
Yearning 基於1080p分辨率開發僅支持1080p及以上顯示器訪問
由於使用較多新的前端技術棧,請使用Chrome最新版本(不包括360等其他魔改版本)
特別注意
語法支持
Yearning 目前兼容99%的Mysql 標準SQL語法。
但由於審核邏輯等因素的限制,對一些SQL語句並不能保證得到正確的反饋
已知不支持的語句類型有:
複雜的查詢語句(多表,多函數,非必現。並不是所有複雜語句不支持)create table like 語句視圖語句外鍵相關語句影響行數
Yearning採用Explain分析SQL語句的影響行數。由於Explain生成的影響行數受主鍵,索引等其他因素的影響,並不能100%保證其準確性。其更多的是反應了該語句導致的全表掃描行數,所以對於誤差較大的語句具有一定的優化參考意義。
預檢查
Yearning採用預檢查的方法進行SQL檢測,對於同一工單內添加並編輯的語句會產生字段不存在的錯誤
例如
ALTER TABLE core_data_sources ADD t1 int( 11) DEFAULT 0 COMMENT '已退換貨數量';
ALTER TABLE core_data_sources ADD t2 int( 11) DEFAULT 0 COMMENT '申請中數量' AFTER t1;
該工單第二條語句依賴第一條語句創建的字段。由於當前數據庫並沒有t1這個字段,所以該工單檢測時會報錯t1字段不存在的問題。
語句本身沒有問題因為在mysql執行中是逐條執行並檢測。當第一條執行後表內生成該字段,第二條執行前檢測自然也就正常。
生成回滾語句
Yearning 採用解析binlog方式的方式獲得回滾語句。由於Mysql replication協議限制,必須擁有SUPER/REPLICATION SLAVE, REPLICATION CLIENT ,ALL PRIVILEGES 權限的賬號才可以獲得binlog流。所以,如想體驗生成回滾語句備份功能,請確保對應填寫的數據源賬號擁有相應權限,同時對應數據源應開啟binlog功能。
效果展示