# 自定义添加安全规则
您可以根据需求添加自定义安全规则。
#### 背景信息
自定义安全规则包含功能如下：
- 支持对规则进行编辑、删除、复制操作，以及通过拖拽或配置方式调整规则匹配优先级，默认优先级按列表顺序匹配。
- 支持对自定义规则的命中次数实时统计展示，可通过清零按钮重置。
- 提供默认安全规则，若安全规则均未命中，则按默认规则进行防护，可选择放行、语句拦截或会话阻断。可配置风险等级标识。
- 支持规则批量应用至数据库对象。
 
#### 操作步骤
1. 使用系统管理员sysadmin账号[登录数据库运维安全管理系统](https://support.huaweicloud.com/usermanual-dbss/dbss_01_4087.html)。

2. 在左侧导航栏，选择"安全策略\> 安全规则"，单击"添加安全规则"，选择自定义。 
   图1添加安全规则详情   
   ![](https://support.huaweicloud.com/usermanual-dbss/zh-cn_image_0000002691482334.png "点击放大")
   表1添加安全规则 
   | 参数                                                                                                                                                                   || 说明                                                                                                                                                                                                          |
   |:---|---|:---|
   | 基本信息       | 规则名称    | 自定义规则名称。                                                                                                                                                                                                    |
   | 基本信息       | 标签      | 可添加标签，用于列表展示及检索。                                                                                                                                                                                            |
   | 基本信息       | 风险等级    | 可配置高、中、低或无风险。命中策略是否记录日志。 注意： 仅响应动作为放行时可配置无风险。                                         |
   | 基本信息       | 响应动作    | 可配置会话阻断、语句拦截或放行。 注意： 响应动作为语句拦截时，影响行数仅支持update和insert命令，不支持结果集大小，数据库错误码，执行时长和执行状态的匹配。 |
   | 基本信息       | 告警审计    | 默认审计，仅风险等级为无风险时可选择不审计。                                                                                                                                                                                      |
   | 基本信息       | 锁定访问    | 响应动作为会话阻断时，可选择是否根据客户端IP或数据库用户锁定访问一定时间。                                                                                                                                                                      |
   | 基本信息       | 阻断信息    | 系统默认提供阻断信息，可自定义阻断信息，长度不超过30个中文字符。 注意： DB2数据库受自身特性影响，自定义阻断信息不可超过14个中文字符，超出部分将不显示。        |
   | 匹配信息（访问源）  | 客户端IP   | 自定义身份时填写，数据库客户端的IP/IP组。                                                                                                                                                                                     |
   | 匹配信息（访问源）  | 客户端主机   | 自定义身份时填写，数据库客户端的主机名。                                                                                                                                                                                        |
   | 匹配信息（访问源）  | 操作系统用户名 | 自定义身份时填写，数据库客户端的操作系统用户名。                                                                                                                                                                                    |
   | 匹配信息（访问源）  | 数据库账号   | 自定义身份时填写，数据库客户端的访问数据库资产使用的用户名或用户组。                                                                                                                                                                          |
   | 匹配信息（访问源）  | 客户端工具   | 自定义身份时填写，数据库客户端工具。                                                                                                                                                                                          |
   | 匹配信息（访问源）  | 身份主体对象组 | 引用身份主体对象组时，可添加身份主体组，或在对象管理菜单中提前配置。                                                                                                                                                                          |
   | 匹配信息（访问源）  | 大小写敏感   | 可选择是否开启数据库账号大小写匹配，默认不开启。                                                                                                                                                                                    |
   | 匹配信息（访问目标） | 数据库对象   | 对象可以是数据源、实例、数据库/模式、表或字段；可选择数据库对象或选择/添加数据库对象组。                                                                                                                                                               |
   | 匹配信息（访问目标） | 操作对象    | 选择或添加操作对象组，操作对象包含操作对象类型及操作对象名。 注意： 操作对象类型匹配不区分大小写。         |
   | 匹配信息（访问行为） | 操作命令    | 客户端执行的命令类型。                                                                                                                                                                                                 |
   | 匹配信息（访问行为） | 访问频次    | IP/数据库账号/数据库在一定时间内的访问次数。                                                                                                                                                                                    |
   | 匹配信息（访问行为） | 请求语句    | 可选择包含或不包含某条请求语句，或匹配正则，或客户端执行的SQL十六进制序列。                                                                                                                                                                     |
   | 匹配信息（访问结果） | 执行状态    | 客户端请求的执行状态。                                                                                                                                                                                                 |
   | 匹配信息（访问结果） | 影响行数    | 客户端请求影响行数。                                                                                                                                                                                                  |
   | 匹配信息（访问结果） | 结果集大小   | 客户端请求返回的结果集大小。                                                                                                                                                                                              |
   | 匹配信息（访问结果） | 数据库错误码  | 数据库返回的错误码。                                                                                                                                                                                                  |
   | 匹配信息（访问结果） | 执行时长    | 语句执行时长，单位ms。                                                                                                                                                                                                |
   | 时间范围       | 生效时间    | 规则生效时间。                                                                                                                                                                                                     |
      
   图2调整规则优先级顺序   
   ![](https://support.huaweicloud.com/usermanual-dbss/zh-cn_image_0000002691322450.png "点击放大")
   
   
3. （可选）如果需要调整规则应用的数据库对象，选中规则后，单击"应用规则"进行数据库对象配置，可选择已有的数据库对象或对象组，支持新增对象组。提供追加或覆盖两种方式： 
   - 追加：在添加安全规则时填写的数据库对象的基础上新增，取并集。
   
   - 覆盖：更新规则内容为本次配置的数据库对象。
     图3应用规则   
     ![](https://support.huaweicloud.com/usermanual-dbss/zh-cn_image_0000002721161985.png "点击放大") 
   
   
   
   
4. （可选）默认规则调整：安全规则均未命中时，按此默认规则进行安全防护，可调整响应动作。 
   图4默认规则   
   ![](https://support.huaweicloud.com/usermanual-dbss/zh-cn_image_0000002721041863.png "点击放大")
   
   
5. 启用规则。
6. （可选）查看规则内容：鼠标单击规则名称，可快速查看规则配置项。若访问目标为数据库对象组，单击组名可查看该对象组详情。
 
#### 相关操作
除了新增操作外，还支持以下操作：
- 引用模板：单击"添加到安全规则"，选择引用模板，界面跳转至内置规则模板页面，操作参见[内置规则模板](https://support.huaweicloud.com/usermanual-dbss/dbss_01_4120.html)
- 复制规则：鼠标移动到操作区，单击"复制"复制整条规则。
- 编辑规则：鼠标移动到操作区，单击"编辑"编辑整条规则。
- 删除规则：鼠标移动到操作区，单击"更多"，选择"删除"整条规则。
- 规则批量操作：单击"更多操作"，可选择启用/停用/删除选中或全部的规则。
- 命中次数清零：支持规则的命中次数实时统计，可单击"更多操作"，选择"命中次数清零"重置。
  ```
  ```
  
![](https://support.huaweicloud.com/usermanual-dbss/public_sys-resources/note_3.0-zh-cn.png)
- 规则优先级顺序为："IP黑白名单 \> SQL黑白名单 \> 安全规则 \> 虚拟补丁"；同类型规则中的黑名单优先级高于白名单；同类型规则的优先级按列表顺序，列表越靠前，优先级越高。
- 安全规则支持从多个维度设置规则信息，一条规则内的匹配项之间为"与"关系，多条规则之间为"或"关系。
- 安全规则需应用到数据库对象才可启用。
- 安全规则创建后默认处于停用状态，需手动启用。
- 命中默认安全规则时，相应日志风险类型为"未知"。
 
