安全规则是通过一组DSL(Domain Specific Language)语言对数据库实现精细化管控的规则集合,您在使用DMS的查询、导出、变更等功能时,可以通过安全规则管控这些功能行为,从而打造符合您企业的操作规范和研发流程。

使用场景

场景 解决方案
目前通过邮件或其他IM渠道进行线下沟通、人肉进行变更的执行,急切希望能拥有在线流程化管理系统。
  • 安全规则集成了研发流程、研发规范、审批流程,串联起DMS产品内各个功能, 实现多人在线、协同管理数据库。
  • 安全规则提供强大的SQL引擎,能帮您进行自定义的SQL检测与管控。
  • 安全规则提供非常强大的审批功能,您可以根据不同的用户行为自定义不同的审批流程。
希望对数据库的研发流程进行管控,实现多套环境之间的结构一致性保障。例如先在开发环境上执行设计并进行验证,随后发布到联调测试环境,待联调通过后发布到预发环境,预发验证后才最终发布生产环境。
希望对数据库的表结构设计规范进行管控。例如建表时一定要有主键,在已有表上新增字段不允许为空等。
希望数据库不能执行例如删数据、删表等高危操作的语法,仅能执行数据查询(SELECT)语法。
希望对数据库的某些操作进行差异化的审批流程管控,例如写入数据免审批、更新1万条以内的数据由业务负责人审批、更新1万条以上的数据由业务负责人+DBA双重审批等。
希望对数据库的权限开通进行差异化的流程管控,例如申请测试环境的权限为免审批、申请生产环境的权限需要由业务负责人审批等。

支持的数据库引擎

当前支持如下数据库引擎:
  • MySQL系列:MySQL、RDS MySQL、PolarDB MySQL、PolarDB-X、AnalyticDB MySQL、OceanBase MySQL
  • PostgreSQL系列:PostgreSQL、PolarDB PostgreSQL、AnalyticDB PostgreSQL
  • Oracle系列:Oracle、OceanBase Oracle、PolarDB-O
  • SQL Server
  • MariaDB
  • Data Lake Analytics(DLA)
  • Redis
  • MongoDB
  • MaxCompute
  • HBase
  • ClickHouse

创建安全规则

您可以根据您的需求创建多条安全规则,供不同环境的数据库选择。

  1. 登录DMS控制台
  2. 在顶部菜单栏,单击系统管理 > 安全管理 > 安全规则,进入安全规则页面。
    安全规则路径
  3. 单击页面左上方的新增规则集按钮。
  4. 在弹窗中,配置如下参数,并单击提交
    新建规则集
    配置项 说明
    引擎类型 请选择待创建安全规则的数据库引擎类型,该安全规则将作用于目标引擎类型。
    规则集名称 输入规则集的名称。
    备注 输入备注信息(例如该规则集的作用范围),以减少沟通成本。
  5. 在安全规则详情页中,根据您的需求进行自定义配置。
    例如:

    您可以在安全规则的SQL窗口页签中,关闭结果集是否支持导出规则,该项规则默认为开启。

    关闭后,将无法导出对应的数据库在SQL Console查询的结果集。

    说明 安全规则的具体语法可参见安全规则DSL语法。同时,安全规则针对不同模块有不同的检测,具体说明与配置方法请参见如下相关链接:

修改数据库实例的安全规则

说明 本章节内容仅针对安全协同管控模式的实例有效,自由操作稳定变更管控模式的实例为默认的安全规则,不可调整。
  • 方式一:
    1. 登录DMS控制台
    2. 在左侧导航栏,右键目标数据库实例,在弹出的窗口中单击管控模式 > 安全协同 > 目标安全规则集。
  • 方式二:
    1. 登录DMS控制台
    2. 在顶部菜单栏,单击系统管理 > 实例管理,进入实例列表页面。
    3. 选中目标数据库,单击上方的批量编辑
      说明 支持批量选中多个同类型的数据库。
    4. 批量编辑实例信息页,勾选管控模式,并选择安全协同
    5. 安全规则列表中,选择要应用到这些实例的安全规则集。