跳到主要内容

管理 SQL 开发规范

初始状态下,NineData 提供开发环境和生产环境下的 SQL 开发规范,以确保数据库的安全。您也可以根据自身业务需求,自定义 SQL 开发规范。

注意事项​

  • 新规范的创建必须基于已有规范。
  • 系统提供的默认规范无法被删除,但可以编辑。
  • 数据库 DevOps 专业版下不支持创建规范,数据库 DevOps 企业版无此限制。
  • AWS Redshift、MaxCompute、ShardingProxy 和 GBase8a 数据源支持关联 SQL 开发规范。不同数据源可配置的规则以当前控制台显示为准。

前提条件​

  • 已创建或加入组织,并且该组织已开通数据库 DevOps 专业版或数据库 DevOps 企业版,同时请确保您的包年包月订阅未过期。更多信息,请参见管理组织。
  • 当前账号已切换到目标组织。更多信息,请参见切换到组织。
  • 您在组织中的角色为系统管理员。

创建规范​

  1. 登录 NineData 控制台。

  2. 在左侧导航栏,单击数据库 DevOps > 规范与流程。

  3. 在规范与流程页面,单击 SQL 开发规范页签,并单击右上角的创建规范。

    提示

    您也可以单击目标规范右侧操作列的类似创建,基于该规范创建新规范。

  4. 在弹出的创建规范对话框中,配置下列参数并单击确定。

    • 复制规范:选择基于哪个规范创建新规范。

      提示

      如果您是通过单击类似创建到达此对话框,则此处已默认选好。

    • 规范名称:输入新规范的名称,支持 1 ~ 32 个字符。为了方便后续查找和管理,请尽量使用有意义的名称。

      提示

      如果您是通过单击类似创建到达此对话框,则此处已默认填写完成。

    • 描述(可选):输入针对新规范的描述,支持 1 ~ 64 个字符。

  5. 控制台自动跳转到SQL 开发规范详情页面,您可以在该页面编辑、开关目标规则。

    提示

    SQL 开发规则已根据各大模块分类,您可以单击类别页签进行切换。

配置 NoSQL 命令控制​

对于 NoSQL 数据源,SQL 开发规范分别提供 SQL 窗口 和 SQL 任务 两条命令控制规则。两条规则相互独立:前者控制 SQL 窗口中的命令,后者控制 SQL 任务中的命令。是否拦截命令以及允许执行的命令,以目标规范中的规则开关和命令列表为准。

  1. 登录 NineData 控制台。

  2. 在左侧导航栏,单击数据库 DevOps > 规范与流程。

  3. 在规范与流程页面,单击SQL 开发规范页签,然后单击目标规范名称。

  4. 在SQL 开发规范详情页面,根据要管控的模块选择对应页签:

    • 在SQL 窗口页签中,找到NoSQL 类型数据库 SQL 窗口支持命令规则,单击编辑。
    • 在SQL 任务页签中,找到 NoSQL 命令规则,单击编辑。
  5. 在编辑规则窗口中配置支持的功能模块、支持数据库和支持的命令。当前控制台的该规则编辑窗口显示 Redis、MongoDB、ElastiCache 和 PegaDB 选项;不同规范和数据源的可选项以当前控制台实际显示为准。

    • SQL 窗口规则的说明为:NoSQL 类型数据库支持命令。关闭该规范时,不做任何命令拦截;开启该规范时,只允许执行用户指定的命令列表。。当前控制台中,Redis 的命令选择器展示 DQL、DDL、DML 分类。
    • SQL 任务规则用于限制 NoSQL 数据源在 SQL 任务中可执行的命令。当前控制台中,SQL 任务的 Redis 命令选择器展示具体命令列表。
  6. 确认命令范围和规则开关后,单击确定保存。仅将业务确实需要的命令加入允许列表,并在关联数据源前确认 SQL 窗口和 SQL 任务分别使用了预期的规则。

提示

NoSQL 命令控制只说明对应模块的命令拦截范围,不代表所有 NoSQL 数据源都支持 SQL 代码审核或其他 SQL 开发能力;具体支持范围以目标模块和当前控制台为准。

编辑规范​

  1. 登录 NineData 控制台。

  2. 在左侧导航栏,单击数据库 DevOps > 规范与流程。
  3. 在规范与流程页面,单击 SQL 开发规范页签,然后单击目标规范名称。
  4. 控制台跳转到SQL 开发规范详情页面,您可以在该页面编辑、开关目标规则。

删除规范​

  1. 登录 NineData 控制台。

  2. 在左侧导航栏,单击数据库 DevOps > 规范与流程。

  3. 在规范与流程页面,单击 SQL 开发规范页签。

  4. 单击需要删除的规范,在 SQL 开发规范详情页面,单击右上角的删除。

    提示

    您也可以单击目标规范右侧操作列的删除。

  5. 在弹出的确认窗口中,单击删除。

    提示

    如果当前规范已经关联到某个环境或数据源,需要在弹出的当前规范被以下 环境/数据源 关联,请先更改窗口中为这些资源选择新的流程,然后单击更改并删除。

关联规范到环境​

SQL 开发规范被关联到环境后,会覆盖环境原有的规范,该环境下所有数据源都将适用该新规范。

  1. 登录 NineData 控制台。

  2. 在左侧导航栏,单击数据库 DevOps > 规范与流程。
  3. 在环境配置页签下,找到目标环境名称,并单击其右侧操作列的编辑。
  4. 在弹出的编辑环境配置窗口中,选择您需要的 SQL 开发规范,单击确定。

关联规范到数据源​

SQL 开发规范被关联到数据源后,该数据源将适用该新规范,不再适用所属环境中的规范。环境中其他数据源不受影响。

  1. 登录 NineData 控制台。

  2. 在左侧导航栏,单击数据库 DevOps > 规范与流程。

  3. 单击数据源配置页签,找到目标数据源名称,并单击其右侧操作列的编辑。

    提示

    数据源关联的SQL 开发规范中,左侧带有bind图标代表已继承环境中配置的 SQL 开发规范。

  4. 在弹出的编辑数据源配置窗口中,将 SQL 开发规范下继承环境配置左侧的勾去掉,然后选择您需要的规范,单击确定。

    提示

    重新选中继承环境配置即可恢复成环境中配置的 SQL 开发规范。

附录:概念说明​

在配置 SQL 开发规范时,您可以对每条规则进行编辑,此处对重点的两个配置项目进行说明。

配置项目
说明
规则级别分必须改进、建议改进两种。您可以根据实际业务需求调整每个规则的级别。
  • 必须改进:最高级别的 SQL 问题,请将此规范级别应用于会对数据库造成严重影响的 SQL 规则,并确保开发人员修复此类问题。
  • 建议改进:通常适用于比较宽松的规范,可以根据实际情况选择是否遵守。如果不遵守这些规则,可能会导致 SQL 语句难以维护或者运行效率低下。
支持数据库列出该条规则支持的所有数据库类型。您可以按需选择对哪种数据库类型生效,支持单选和多选。

相关链接​

SQL 开发规范一览表