DMS提供功能強大的SQL Console,輕松實現對數據庫讀、寫操作。同時,您可以結合安全規則,自定義配置SQL Console查詢規范。本文將以POC_dev實例(相關配置參見準備工作和結構設計)為操作對象向您介紹SQL Console的部分使用規范。
前提條件
系統角色為管理員、DBA或安全管理員。
進入安全規則詳情頁
管理員登錄數據管理DMS 5.0。
單擊控制臺左上角的圖標,選擇
。說明若您使用的是非極簡模式的控制臺,在頂部菜單欄中,選擇
。單擊POC開發庫規則右側操作列下的編輯 。
配置單次執行SQL的最大個數
本示例將配置在SQL Console頁面單次執行SQL的最大個數為5。
配置安全規則。
進入安全規則詳情頁。
在詳情頁左側的導航欄中,單擊SQL窗口,并單擊SQL執行數量規范。
找到控制單次執行SQL個數規則名,單擊右側的編輯。
替換如下規則DSL,并單擊提交。
if @fac.sql_count > 5 then @act.reject_execute '單次執行SQL個數不能超過5個' else @act.allow_execute end
說明該段安全規則DSL表示:在SQL Console中,單次執行的SQL語句大于5個(系統默認值1000個)則拒絕執行,小于或等于5個則允許執行。更多安全規則語法介紹請參見安全規則DSL語法。
在SQL Console中驗證。
在數據庫實例列表中展開
POC_dev
實例,雙擊poc_dev
數據庫,進入SQL Console頁。在SQL Console窗口中,輸入如下語句并單擊執行。
SELECT 1; SELECT 2; SELECT 3; SELECT 4; SELECT 5; SELECT 6;
說明嘗試一次執行6條SQL,系統會提示單次執行SQL個數不能超過5個。
配置單次查詢的最大返回行數
本示例將配置在SQL Console頁面單次查詢最大返回行數為3000。
配置安全規則。
進入安全規則詳情頁。
在詳情頁左側的導航欄中,單擊SQL窗口,并單擊基礎配置項。
找到單次查詢最大返回行數規則名,單擊右側的編輯。
將配置內容設置為
3000
,單擊提交。說明系統默認值為
200
。
在SQL Console中驗證。
在數據庫實例列表中展開
POC_dev
實例,雙擊poc_dev
數據庫,進入SQL Console頁。在SQL Console窗口中,輸入如下語句并單擊執行。
SELECT * FROM `big_table`;
說明嘗試查詢一張大表,系統會僅返回3000條結果。您可提交數據導出工單查看更多數據。
配置結果集是否支持編輯
本示例通過設置安全規則,允許您在SQL Console頁面編輯SQL結果集。
配置安全規則。
進入安全規則詳情頁。
在詳情頁左側的導航欄中,單擊SQL窗口,并單擊基礎配置項。
找到結果集是否支持編輯規則名,單擊右側的編輯。
打開配置內容開關,單擊提交。
說明系統默認關閉。
在SQL Console中驗證。
在數據庫實例列表中展開
POC_dev
實例,雙擊poc_dev
數據庫,進入SQL Console頁。在SQL Console窗口中,輸入如下語句并單擊執行。
SELECT * FROM `big_table` LIMIT 20;
單擊開始編輯,在執行結果區域,修改目標數據,并單擊提交修改。
在彈窗中,單擊確認,并單擊直接執行。
配置DML影響行數的閾值
本示例將限制在SQL Console頁面DML影響行數為1000。
配置安全規則。
進入安全規則詳情頁。
在詳情頁左側的導航欄中,單擊SQL窗口,并單擊其他SQL規范。
找到禁止全表UPDATE執行規則名,單擊右側的禁用,并單擊確認。
單擊SQL執行性能規范,找到禁止DML影響行數超過閾值執行規則名,單擊右側的編輯。
替換如下規則DSL,并單擊提交。
if @fac.sql_type == 'DML' and @fac.sql_affected_rows > 1000 then @act.reject_execute 'DML影響行數超過閾值1000, 拒絕執行' else @act.allow_execute end
說明該段安全規則DSL表示:在SQL Console中,執行語句為DML且影響行數大于1000行(系統默認值2000個)則拒絕執行,小于或等于1000行則允許執行。更多安全規則語法介紹請參見安全規則DSL語法。
單擊禁止DML影響行數超過閾值執行規則右側的啟用,并單擊確認。
在SQL Console中驗證。
在數據庫實例列表中展開
POC_dev
實例,雙擊poc_dev
數據庫,進入SQL Console頁。在SQL Console窗口中,輸入如下語句并單擊執行。
UPDATE `big_table` SET `name` = CONCAT(name,`a`);
說明嘗試對大表執行DML語句,系統會攔截該語句并提示該DML語句影響行數超過閾值1000,拒絕執行。
配置查詢超時時間
本示例將配置在SQL Console頁面的查詢超時時間為10秒。
配置查詢超時時間。
在DMS對象列表中,右鍵單擊
POC_dev
實例,從彈出的列表中選擇編輯實例。在編輯實例頁面中,單擊高級信息。
將查詢超時時間設置為
10
秒,并單擊提交說明系統默認值為60秒。
在SQL Console中驗證。
在數據庫實例列表中展開
POC_dev
實例,雙擊poc_dev
數據庫,進入SQL Console頁。在SQL Console窗口中,輸入如下語句并單擊執行。
SELECT COUNT( *) FROM `big_table` ;
說明嘗試一次SQL查詢,系統將在10秒后終止查詢。