全部產品
Search
文件中心

ApsaraDB for OceanBase (Deprecated):SQL 檢查規範

更新時間:Jul 01, 2024

背景資訊

系統管理員授予使用者開發規範操作許可權後,使用者可以在安全規範環境中管理 SQL 檢查規範。

使用者在 SQL 視窗/建立資料庫變更/建立表情境下執行 SQL 陳述式時,ODC 會根據配置的 SQL 檢查規範檢測 SQL 陳述式。

本篇文檔旨在介紹如何編輯和執行 SQL 檢查規範。

概念介紹

  • 規則層級:是指某個 SQL-Check 規則的等級。規則層級劃分為以下 3 類:

    • 符合規範:即命中該條規則的 SQL 是符合規範的,不需要任何改進。

    • 建議改進:即命中該條規則的 SQL 存在問題,但是問題不太嚴重,可以改進,也可以不改進,通常只會給使用者一個提示。

    • 必須改進:即命中該條規則的 SQL 存在嚴重問題,不改進直接執行的話會影響到資料 or 業務安全,必須改進後才能執行。

  • 規則狀態:該狀態用於指示某條 SQL-Check 規則的啟用狀態,如果啟用則會使這條規則在使用者發起工單或者執行 SQL 時進行檢測,如果禁用則等效於不存在這條規則。

  • 規則類型:指示該規則應用的資料庫物件類型,從目前的實現來看可以分為以下幾類:

    • TABLE:表明該條規則是作用於表對象上的。

    • SELECT:表明該條規則是作用於查詢語句上的。

    • INSERT:表明該條規則是作用於插入語句上的。

    • UPDATE:表明該條規則是作用於更新語句上的。

    • DELETE:表明該條規則是作用於刪除語句上的。

    • DDL:表明該條規則是針對 DDL 進行檢測的。

    • DML:表明該條規則是針對於 DML 進行檢測的。

    • DQL:表明該條規則是針對於 DQL 進行檢測的。

    • INDEX:表明該條規則是針對於 INDEX 建立語句進行檢測。

執行流程

image.png

  1. 擁有開發規範操作許可權的使用者在環境中編輯和啟用 SQL 檢查規範。

  2. ODC 使用者在命令列視窗、匿名塊視窗、資料庫變更中執行 SQL 陳述式時,則會發起 SQL 規範檢查。

  3. 符合 SQL 規範則會執行 SQL 陳述式,否則攔截 SQL 陳述式。

前提條件

擁有開發規範操作許可權的使用者。

操作步驟

樣本:在 SQL 檢查規範的測試環境中編輯並啟用規則列必須注釋後,編輯和執行 CREATE TABLE SQL 陳述式並會進行 SQL 規範檢查。

資訊項

樣本值

專案名稱

odc_4.2.0

資料來源

mysql_4.2.0

資料庫名稱

odc_test

表名稱

employee

  1. 登入 Web 版 ODC 後,在專案協同視窗中單擊 安全規範 > 環境 > 測試 > SQL 檢查規範

    image

  2. 如上圖所示,在 SQL 檢查規範頁簽中,編輯 規則名稱 列要有注釋

  3. 單擊 提交,完成修改該規範。

    image

  4. 在 SQL 檢查規範頁簽中,啟用 列要有注釋

    image

  5. 在專案協同視窗中單擊 專案 > 全部專案 > odc_4.2.0

    image.png

  6. 單擊資料庫,登入該資料庫並進入 SQL 開發視窗。

    image.png

  7. 在 SQL 視窗中,編輯 SQL 陳述式以建立表employee,並單擊 運行 F8 運行當前 SQL 視窗中所有的 SQL 陳述式。

    image.png

    CREATE TABLE `odc_test`.`employee` (
    `emp_no` int(120) NULL,
    `birthday` date NULL,
    `name` varchar(120) NULL
    ) DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci ;
    
  8. 如上圖所示,日誌中會提示 沒有列注釋

相關文檔