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秒后终止查询。