DMS提供功能强大的SQL Console,轻松实现对数据库读、写操作。同时,您可以结合安全规则,自定义配置SQL Console查询规范。本文将通过以下例子向您介绍SQL Console的部分使用规范。

说明

  • 为提高演示效率,本文档将以管理员账号进行演示。
  • 本文档以开发库为例,您可以按此方法按需配置预发库、生产库等,更多信息,请参见实例环境说明
    说明 本示例中poc_dev实例的相关配置(表结构与安全规则等),请参见准备工作结构设计

进入安全规则详情页

  1. 以管理员账号登录DMS控制台
  2. 在页面顶部,选择系统管理 > 安全管理 > 安全规则

    进入安全规则页面。

  3. 单击POC开发库规则右侧操作列下的编辑
    说明 创建安全规则的具体操作,请参见创建安全规则
    编辑开发库规则

配置单次执行SQL的最大个数

  1. 配置安全规则。
    1. 进入安全规则详情页
    2. 详情页左侧的导航栏中,单击SQL窗口,并单击SQL执行数量规范
    3. 找到控制单次执行SQL个数规则名,单击右侧的编辑编辑控制单次执行SQL个数
    4. 替换如下规则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语法
  2. 在SQL Console中验证。
    1. 在DMS对象列表中展开poc_dev实例,双击poc_dev数据库,进入SQL Console页。进入POCdevSQL控制台
    2. 在SQL Console窗口中,输入如下语句并单击执行
      SELECT 1;
      SELECT 2;
      SELECT 3;
      SELECT 4;
      SELECT 5;
      SELECT 6;
      说明 尝试一次执行6条SQL,系统会提示单次执行SQL个数不能超过5个。
      验证单次提交SQL数量

配置单次查询的最大返回行数

  1. 配置安全规则。
    1. 进入安全规则详情页
    2. 详情页左侧的导航栏中,单击SQL窗口,并单击基础配置项
    3. 找到单次查询最大返回行数规则名,单击右侧的编辑编辑单次查询最大返回行数
    4. 配置内容设置为3000,单击提交配置单次查询最大返回行数
      说明 系统默认值为200
  2. 在SQL Console中验证。
    1. 在DMS对象列表中展开poc_dev实例,双击poc_dev数据库,进入SQL Console页。
    2. 在SQL Console窗口中,输入如下语句并单击执行
      SELECT * FROM `big_table`;
      说明 尝试查询一张大表,系统会仅返回3000条结果。您可提交数据导出工单查看更多数据。
      验证最大返回行数

配置结果集是否支持编辑

  1. 配置安全规则。
    1. 进入安全规则详情页
    2. 详情页左侧的导航栏中,单击SQL窗口,并单击基础配置项
    3. 找到结果集是否支持编辑规则名,单击右侧的编辑
    4. 打开配置内容开关,单击提交
      说明 系统默认关闭。
  2. 在SQL Console中验证。
    1. 在DMS对象列表中展开poc_dev实例,双击poc_dev数据库,进入SQL Console页。
    2. 在SQL Console窗口中,输入如下语句并单击执行
      SELECT * FROM `big_table`
       LIMIT 20;
    3. 执行结果区域,修改目标数据,并单击提交修改修改结果集
    4. 在弹窗中,单击确认,并再次单击确认

配置DML影响行数的阈值

  1. 配置安全规则。
    1. 进入安全规则详情页
    2. 详情页左侧的导航栏中,单击SQL窗口,并单击其他SQL规范
    3. 找到禁止全表UPDATE执行规则名,单击右侧的禁用,并单击确认
    4. 单击SQL执行性能规范,找到禁止DML影响行数超过阈值执行规则名,单击右侧的编辑
    5. 替换如下规则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语法
    6. 单击禁止DML影响行数超过阈值执行规则右侧的启用,并单击确认
  2. 在SQL Console中验证。
    1. 在DMS对象列表中展开poc_dev实例,双击poc_dev数据库,进入SQL Console页。
    2. 在SQL Console窗口中,输入如下语句并单击执行
      UPDATE `big_table` SET `name` = CONCAT(name,`a`);
      说明 尝试对大表执行DML语句,系统会拦截该语句并提示该DML语句影响行数超过阈值1000,拒绝执行。
      验证DML影响行数超过阈值

配置查询超时时间

  1. 配置查询超时时间
    1. 在DMS对象列表中,右键单击poc_dev实例,从弹出的列表中选择编辑实例
    2. 编辑实例页面中,单击高级信息
    3. 将查询超时时间设置为10秒,并单击提交编辑查询超时时间
      说明 系统默认值为60秒。
  2. 在SQL Console中验证。
    1. 在DMS对象列表中展开poc_dev实例,双击poc_dev数据库,进入SQL Console页。
    2. 在SQL Console窗口中,输入如下语句并单击执行
      SELECT COUNT( *)  FROM `big_table` ;
      说明 尝试一次SQL查询,系统将在10秒后终止查询。
      验证查询超时