在安全规则中,您可以在权限申请节点中定制关于权限申请系列的规则,例如实例申请权限、库申请权限、表申请权限等。

背景信息

新版的安全规则具备非常灵活的能力(DSL),可以根据业务需求自定义风险级别,让不同对象的权限申请走不同的审批流程。例如您可以用不同的形式把控数据库实例的权限申请,基础语法请参见安全规则DSL语法

前提条件

用户角色为管理员、DBA、安全管理员。

基础配置项

权限申请有8个基础配置项。

  • 【实例-权限申请】默认审批模板:当实例申请权限校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。您可以通过切换审批模板来更改默认审批模板的审批流程。操作流程请参见修改默认审批模板操作步骤
  • 【库-权限申请】默认审批模板:当库权限申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
  • 【表-权限申请】默认审批模板:当表权限申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
  • 【可编程对象-权限申请】默认审批模板:当可编程对象校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
  • 【字段-权限申请】默认审批模板:当敏感字段申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
  • 【行-权限申请】默认审批模板:当行权限申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
  • 【Owner-申请】默认审批模板(资源无Owner时):当Owner申请校验中未配置不同风险对应的审批流程且无数据Owner时,系统会采用此默认的审批模板。
  • 【Owner-申请】默认审批模板(资源有Owner时):当Owner申请校验中未配置不同风险对应的审批流程且有数据Owner时,系统会采用此默认的审批模板。

检测点

当一个权限申请的工单被提交时,系统会校验该工单是否符合各检测点的相关规则。只有在全部校验通过的情况下,该工单才会被放行。权限申请中有如下7个检测点:

  • Owner申请校验:设置实例-OWNER表-OWNER库-OWNER申请工单的审批流程或限制条件。
  • 实例申请权限校验:设置实例-性能实例-登录申请工单的审批流程或限制条件。
  • 库权限申请校验:设置库-权限申请工单的审批流程或限制条件。
  • 表权限申请校验:设置表-权限申请工单的申请流程或限制条件。
  • 可编程对象校验:设置可编程对象申请工单的审批流程或限制条件。
  • 敏感字段申请校验:设置敏感列-权限申请工单的申请流程或限制条件。
  • 行权限申请校验:设置行-权限申请工单的申请流程或限制条件。
说明 您可以在每个检测点中使用安全规则模板库中提供的规则,也可以自定义新增规则。详情请参见新增规则操作步骤

因子和动作

  • 因子:因子是系统内置变量,可用来获取安全规则校验的上下文信息,如获取SQL类型、数据库名称等。因子全部以@fac.开头,后接因子名称。每个模块的不同检测点均提供不同因子,权限申请中提供因子的说明请参见下表。

    因子名 说明
    @fac.env_type 环境类型,值为环境标识,如DEVPRODUCT。更多环境类型请参见实例环境说明
    @fac.schema_name 数据库名称。
    @fac.perm_apply_duration 权限申请期限(单位:小时)。
    @fac.column_security_level 字段安全等级。
    • 敏感:sensitive
    • 机密:confidential
    • 内部:inner
    @fac.perm_type 申请权限的权限类型列表,返回一个字符串列表,例如返回['CORRECT','EXPORT']。
    权限类型枚举:
    • 查询:QUERY
    • 导出:EXPORT
    • 变更:CORRECT
    • 登录:LOGIN
    • 性能查看:PERF

    @fac.perm_type通常结合@fun.listEqualIgnoreOrder一起使用,判断权限申请工单申请的权限类型,例如@fun.listEqualIgnoreOrder(@fac.perm_type, ['QUERY']),判断是否仅申请了查询权限。

  • 动作:动作是满足if条件之后系统执行的行为,例如:禁止提交申请工单、选择工作流、允许执行、拒绝执行等,这些动作表达了安全规则的主要目的。动作全部以@act.开头,后接动作名称。每个模块的不同检测点均提供不同动作,权限申请中提供动作的说明请参见下表。

    动作名 说明
    @act.forbid_submit_order 禁止提交申请工单。
    @act.do_not_approve 指定审批模板ID。详情请参见设置审批流程
    @act.choose_approve_template
    @act.choose_approve_template_with_reason

模板库

安全规则提供了大量的规则模板可直接选择启用,也可以在模板基础上按照实际需求自行调整启用。权限申请中的模板如下所示。

检测点 模板
Owner申请校验 禁止申请生产库的Owner。
禁止Owner申请。
设置测试库的Owner申请免批。
库权限申请校验 禁止库权限申请。
禁止申请生产库的库权限。
设置测试库的库权限申请免批。
表权限申请校验 禁止表权限申请。
禁止申请生产库的表权限。
设置测试库的表权限申请免批。
可编程对象校验 禁止可编程对象权限申请。
禁止申请生产库的可编程对象权限。
设置测试库的可编程对象权限申请免批。
敏感字段申请校验 禁止敏感字段申请。
设置机密字段申请审批流程。
行权限申请校验 禁止行权限申请。
禁止申请生产库的行权限。
设置行权限申请审批流程。

新增规则操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择安全与规范 > 安全规则
  3. 安全规则页签中,单击目标规则集右侧操作列中的编辑
  4. 详情页面左侧的导航栏中,单击权限申请
  5. 权限申请页签中,单击操作右侧的新增规则
  6. 新增规则 - 权限申请对话框中,设置如下参数:
    参数 说明
    检测点(必选) 选择需要增加规则的检测点。权限申请中提供了7个检测点。
    • Owner申请校验
    • 实例申请权限校验
    • 库权限申请校验
    • 表权限申请校验
    • 可编程对象校验
    • 敏感字段申请校验
    • 行权限申请校验
    模板库(可选) 安全规则模板库中提供了大量规则模板,选择了检测点以后,您可以从模板库中按需加载规则模板。可选的模板库列表请参见模板库
    规则名称(必填) 自定义规则名称。若您在模板库中选择了规则模板,此处会自动填充。
    规则DSL(必填) 填写规则DSL,DSL语法请参见安全规则DSL语法。若您模板库中选择了规则模板,此处会自动填充。
  7. 单击提交
  8. 新增的规则默认处于已禁用状态,单击规则右侧操作列中的启用
  9. 在弹出的对话框中单击确认