
# 数据库安全审计密码等敏感信息脱敏最佳实践
当需要对输入的SQL语句的敏感信息进行脱敏时，您可以通过开启隐私数据脱敏功能，以及配置隐私数据脱敏规则，防止敏感信息泄露。
#### 前提条件
- 数据库安全审计实例的状态为"运行中"。
- 请参考[开启数据库安全审计](https://support.huaweicloud.com/usermanual-dbss/dbss_01_0356.html)成功开启数据库安全审计功能。
 
#### 创建脱敏规则
1. [登录DBSS控制台](https://console.huaweicloud.com/dbss/#/dbss/home)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002524454332.png)，选择区域。
3. 在左侧导航树中，选择"审计规则"。
4. 在"选择实例"下拉列表框中，选择需要配置隐私数据保护规则的实例。
5. 选择"隐私数据保护"页签。 
   ![](https://support.huaweicloud.com/bestpractice-dbss/public_sys-resources/note_3.0-zh-cn.png)
   仅自定义创建的规则可以使用编辑和删除功能，默认的规则仅可使用启用和禁用功能。
   
   
6. 开启"隐私数据脱敏"。 
   开启后，您可以通过配置隐私数据脱敏规则，防止数据库敏感信息泄露。
   
   
7. 单击"添加自定义规则"，在弹出"添加自定义规则"对话框中设置数据脱敏规则，如[图1]所示，相关参数说明如[表1]所示。
   
   图1添加自定义规则   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002184679566.png "点击放大")
    表1自定义规则参数说明 
   | 参数名称  | 说明              | 取值样例 |
   |:---|:---|:---|
   | 规则名称  | 自定义规则的名称。       | test |
   | 正则表达式 | 输入需要配置的正则表达式。   | -    |
   | 替换值   | 输入正则表达式脱敏后的替换值。 | ###  |
      
   
   
8. 单击"确定"。 
   规则列表中新增一条状态为"已启用"的脱敏规则。
   
   
 
#### 效果验证
以脱敏"密码"信息，且审计的数据库为MySQL为例说明，请参考以下操作步骤验证隐私数据脱敏功能是否生效：
1. 使用MySQL数据库自带的客户端，以**root**用户登录数据库。
2. 在数据库客户端，输入如下SQL请求语句： 
   ```
   INSERT INTO 'adventureworks'.'user_login_info' ('id', 'user_name', 'pass_word') VALUES (1, 'name_1', '密码');
   INSERT INTO 'adventureworks'.'user_login_info' ('id', 'user_name', 'pass_word') VALUES (2, 'name_2', '密码');
   INSERT INTO 'adventureworks'.'user_login_info' ('id', 'user_name', 'pass_word') VALUES (3, 'name_3', '密码');
   INSERT INTO 'adventureworks'.'user_login_info' ('id', 'user_name', 'pass_word') VALUES (4, 'name_4', '密码');
   ```
   
   
3. 在左侧导航栏选择"数据报表"，进入"数据报表"页面。
4. 根据筛选条件，查询输入的SQL语句。
   
   在"SQL语句"列查看执行的"INSERT INTO"SQL语句，显示脱敏前的信息。
   图2查看SQL语句   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002220115005.png "点击放大")
   
   
5. 在左侧导航栏选择"审计规则"进入"审计规则"页面。选择"隐私数据保护"页签单击"添加自定义规则"，添加插入密码的脱敏规则。 
   图3添加插入密码脱敏规则   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002184752714.png "点击放大")
   
   
6. 重复[1]\~[4]，根据筛选条件，查询输入的SQL语句。
   
   在"SQL语句"列查看执行的"INSERT INTO"SQL语句，隐私数据脱敏功能正常，显示脱敏后的信息。
   图4查看脱敏后SQL语句   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002220122125.png "点击放大")
   
   
7. 继续在数据库客户端，输入如下SQL请求语句：
   
   ```
   UPDATE 'adventureworks'.'user_login_info' set 'pass_word' = "密码" where id = 1;
   UPDATE 'adventureworks'.'user_login_info' set 'pass_word' = "密码" where id = 2;
   UPDATE 'adventureworks'.'user_login_info' set 'pass_word' = "密码" where id = 3;
   UPDATE 'adventureworks'.'user_login_info' set 'pass_word' = "密码" where id = 4;
   ```
   
   
8. 重复[3]\~[4]，根据筛选条件，查询输入的SQL语句。
   
   在"SQL语句"列查看执行的"UPDATE"SQL语句，显示脱敏前的信息。
   图5查看SQL语句   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002184896130.png "点击放大")
   
   
9. 在左侧导航栏选择"审计规则"进入"审计规则"页面。选择"隐私数据保护"页签单击"添加自定义规则"，添加修改密码的脱敏规则。 
   图6添加修改密码脱敏规则   
   ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002184900458.png "点击放大")
   
   
10. 重复[7]，执行SQL请求语句。
11. 重复[3]\~[4]，根据筛选条件，查询输入的SQL语句。
    
    在"SQL语句"列查看执行的"UPDATE"SQL语句，隐私数据脱敏功能正常，显示脱敏后的信息。
    图7查看脱敏后的SQL语句   
    ![](https://support.huaweicloud.com/bestpractice-dbss/zh-cn_image_0000002184752466.png "点击放大")
    ![](https://support.huaweicloud.com/bestpractice-dbss/public_sys-resources/note_3.0-zh-cn.png)
    其他场景或数据库类型，需结合具体语法特征和用户具体敏感字段来创建脱敏规则，实现审计脱敏。
    
    
 
