在安全规则中,您可以在权限申请节点中定制关于权限申请系列的规则,例如实例申请权限、库申请权限、表申请权限等。
背景信息
新版的安全规则具备非常灵活的能力(DSL),可以根据业务需求自定义风险级别,让不同对象的权限申请走不同的审批流程。例如您可以用不同的形式把控数据库实例的权限申请,基础语法请参见安全规则DSL语法。
前提条件
用户角色为管理员、DBA、安全管理员。
基础配置项
权限申请有8个基础配置项。
- 【实例-权限申请】默认审批模板:当实例申请权限校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。您可以通过切换审批模板来更改默认审批模板的审批流程。操作流程请参见修改默认审批模板操作步骤。
- 【库-权限申请】默认审批模板:当库权限申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
- 【表-权限申请】默认审批模板:当表权限申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
- 【可编程对象-权限申请】默认审批模板:当可编程对象校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
- 【字段-权限申请】默认审批模板:当敏感字段申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
- 【行-权限申请】默认审批模板:当行权限申请校验中未配置不同风险对应的审批流程时,系统会采用此默认的审批模板。
- 【Owner-申请】默认审批模板(资源无Owner时):当Owner申请校验中未配置不同风险对应的审批流程且无数据Owner时,系统会采用此默认的审批模板。
- 【Owner-申请】默认审批模板(资源有Owner时):当Owner申请校验中未配置不同风险对应的审批流程且有数据Owner时,系统会采用此默认的审批模板。
检测点
当一个权限申请的工单被提交时,系统会校验该工单是否符合各检测点的相关规则。只有在全部校验通过的情况下,该工单才会被放行。权限申请中有如下7个检测点:
- Owner申请校验:设置实例-OWNER、表-OWNER、库-OWNER申请工单的审批流程或限制条件。
- 实例申请权限校验:设置实例-性能、实例-登录申请工单的审批流程或限制条件。
- 库权限申请校验:设置库-权限申请工单的审批流程或限制条件。
- 表权限申请校验:设置表-权限申请工单的申请流程或限制条件。
- 可编程对象校验:设置可编程对象申请工单的审批流程或限制条件。
- 敏感字段申请校验:设置敏感列-权限申请工单的申请流程或限制条件。
- 行权限申请校验:设置行-权限申请工单的申请流程或限制条件。
因子和动作
-
因子:因子是系统内置变量,可用来获取安全规则校验的上下文信息,如获取SQL类型、数据库名称等。因子全部以
@fac.
开头,后接因子名称。每个模块的不同检测点均提供不同因子,权限申请中提供因子的说明请参见下表。因子名 说明 @fac.env_type 环境类型,值为环境标识,如 DEV
、PRODUCT
。更多环境类型请参见实例环境说明。@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申请免批。 | |
库权限申请校验 | 禁止库权限申请。 |
禁止申请生产库的库权限。 | |
设置测试库的库权限申请免批。 | |
表权限申请校验 | 禁止表权限申请。 |
禁止申请生产库的表权限。 | |
设置测试库的表权限申请免批。 | |
可编程对象校验 | 禁止可编程对象权限申请。 |
禁止申请生产库的可编程对象权限。 | |
设置测试库的可编程对象权限申请免批。 | |
敏感字段申请校验 | 禁止敏感字段申请。 |
设置机密字段申请审批流程。 | |
行权限申请校验 | 禁止行权限申请。 |
禁止申请生产库的行权限。 | |
设置行权限申请审批流程。 |