
# 数据库审计实例规则配置最佳实践
建议您开启风险告警，配置了风险告警后，当数据库访问触发了审计规则时，DBSS才能及时将风险通知给您，操作详情请参见[设置告警通知](https://support.huaweicloud.com/usermanual-dbss/dbss_01_0239.html)。
#### 场景一：核心资产数据库表的异常访问、告警
示例：某电商网站后台分为多个微服务，分别为订单管理服务、用户管理服务、商品搜索服务等，各服务部署在不同的服务节点上，有不同IP地址，如[图1]所示。
图1服务器部署拓扑图   
![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000001452105545.png "点击放大")
绿色箭头为正常访问路径，如果订单管理服务或商品搜索服务两个节点被攻陷，攻击者会从这两个节点去访问数据库的用户信息表，意图窃取用户信息，就属于数据库的异常访问。
在DBSS中可通过如下规则设置来检测数据库异常访问情况：
图2添加数据库异常访问   
![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002526441303.png "点击放大")   
![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002494195450.png "点击放大")
如[图2]所示填写的规则表示从192.168.1.1或192.168.3.3上发起的所有针对user_info表的操作都是"高风险"。
设置该规则后，所有异常访问或窃取表user_info的行为都会被审计，并且触发风险告警。
添加"操作对象"时，单击"添加操作对象"，填写"目标数据库"和"目标表"，单击"确认"，完成添加。
图3添加检测异常行为的目标表   
![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000001403086954.png "点击放大")
#### 场景二：利用DBSS进行应用程序的SQL语句性能优化
示例：某应用上线之后发现当用户执行某些操作时总会出现界面长时间卡顿。经定位，发现后台应用访问数据库时出现好几秒的时延，但未定位到具体是哪些语句导致。
此时可利用DBSS的"数据库慢SQL检测"规则进行辅助定位，帮助开发人员进行性能优化。
操作步骤如下：
1. 登录DBSS控制台，进入风险操作页面。 
   图4进入风险操作页面   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000001402390848.png "点击放大")
   
   
2. 单击"数据库慢SQL检测"项"操作"列的"编辑"，在编辑页面的底部设置执行时长规则设置为大于1000毫秒。 
   图5设置执行时长   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000001452568317.png "点击放大")
   
   
3. 单击"确认"，完成设置。
4. 设置完成后，待运行一段时间，在语句页面下的规则名称搜索框中填入"数据库慢SQL检测"对检测情况进行检索。 
   图6检索慢SQL检索情况   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000001402085748.png "点击放大")
   ![](https://support.huaweicloud.com/bestpractice-dbss/public_sys-resources/note_3.0-zh-cn.png)
   - 您可对检索的结果进行分析，对可进行优化的SQL进行优化。
   
   - 若需要进行多轮优化，您可对规则中的"执行时长"字段进行修改，逐步缩小时间，直到达成性能提升的目标。
    
   
   
 
#### 场景三：解决SQL注入风险的告警误报
在企业日常运营中，数据库的安全性至关重要，但频繁的误报告警让运维人员感到困扰。在配置数据库审计实例规则、防范SQL注入风险时，应重点优化告警策略，降低误报率。大量误报不仅会加重运维人员的工作负担，还可能掩盖真正的安全威胁，导致关键风险被忽视。
1. **明确SQL注入的常见特征**
   梳理并定义典型SQL注入攻击模式，基于SQL语法结构、危险关键字等特征精准配置审计规则，从源头减少无效告警。
   
2. **采用白名单机制**
   由于风险操作规则的优先级高于SQL注入规则，因此可将已知的安全SQL语句设置为信任语句或加入白名单，从而有效减少误报。同时，应建立白名单更新机制，确保其随业务变更而及时维护。
   
3. **定期审计与规则优化**
   通过对历史告警数据进行分析，定位并修正引发误报的规则语句，持续优化审计策略，提升告警的准确性和有效性。
   
下面将举例说明如何将已知安全的SQL语句设置为信任语句。
示例：某些语句触发了SQL注入规则，但经过分析确认这些语句并非攻击性语句，而是程序自动生成的合法语句，属于SQL注入的误报。如[图7]所示，该语句是通过SELECT语句访问information_schema库的TABLES表。为避免对该语句的持续告警，您可通过添加风险操作将该语句设置为信任语句来解决该误报问题。
图7SQL注入误报   
![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000001453353301.png "点击放大")
#### 配置操作
1. 在左侧导航树中，选择"审计规则"。
2. 在"选择实例"下拉列表框中，选择需要添加风险操作的实例。
3. 选择"风险操作"页签。
4. 在风险操作列表左上方，单击"添加风险操作"。
5. 在"添加风险操作"界面，如[图8]所示，填写规则信息。
   
   图8填写规则信息   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002534483266.png)
   
   
6. 添加操作对象：单击"添加操作对象"，填写"目标数据库"和"目标表"，单击"确定"，完成添加。 
   如[图9]所示，填写的规则表示：在information_schema库的TABLES表执行的SELECT语句为无风险。
   图9添加SQL注入白名单操作对象   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002565363175.png "点击放大")
   
   
7. 单击下方"确认"，添加规则成功。 
   设置完成后，再次检测到该语句时，优先命中该条规则，识别为无风险将不再告警。
   
   
 
