RDS MySQL 5.7版本实例支持自定义数据库访问密码的强度,保障数据库的安全性。

前提条件

  • 数据库版本如下:
    • RDS MySQL 5.7基础版
    • RDS MySQL 5.7高可用版
  • 已升级至最新内核小版本

注意事项

通过RDS控制台修改或创建密码时,自定义密码策略无法突破如下初始密码策略:
  • 长度为8~32个字符。
  • 由大写字母、小写字母、数字、特殊字符中的任意三种组成。
  • 特殊字符为!@#$%^&*()_+-=

功能介绍

RDS MySQL 5.7版本实例支持通过validate_password插件修改数据库账号的密码复杂度校验规则:

  • 密码和账号名是否可以一致。
  • 密码的长度。
  • 密码中需包含的大小写字母个数。
  • 密码中需包含的数字个数。
  • 密码中需包含的特殊字符个数。
  • 密码检测强度。

步骤一:安装validate_password插件

  1. 连接MySQL实例
    说明 必须使用高权限账号连接MySQL实例。更多信息,请参见创建高权限账号
  2. 在SQL窗口中执行如下命令安装validate_password插件。
    INSTALL PLUGIN validate_password SONAME 'validate_password.so';
  3. 在SQL窗口中执行如下命令验证插件是否安装正常。
    SHOW GLOBAL VARIABLES LIKE 'validate_password%';
    出现类似下图的返回结果即代表插件安装成功。返回结果
    说明 自定义密码策略功能当前只对RDS MySQL 5.7基础版和高可用版实例开放,其他版本实例可以安装插件但暂不开放修改。

步骤二:修改密码策略参数

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中单击参数设置
  3. 根据设置实例参数文档修改loose_validate_password系列参数配置,各参数说明如下。
    说明 修改下列参数前,您必须已完成步骤一:安装validate_password插件,否则参数的修改不会生效。
    参数名 说明
    loose_validate_password_check_user_name 是否允许密码和账号名一致。取值:
    • ON:允许。
    • OFF:不允许。

    默认值:OFF

    loose_validate_password_policy 密码强度检测等级。取值:
    • 0:强度低,只检测密码长度。
    • 1:强度中,检测密码的长度、数字、大小写以及特殊字符。
    • 2:强度高,检测密码的长度、数字、大小写、特殊字符以及字典文件。
      说明 由于当前暂不支持指定字典文件。因此12的强度相等。

    默认值:1

    loose_validate_password_length 密码长度。取值:0~256

    默认值:8

    说明 修改该参数无法突破控制台中最少8个字符的限制,您即使将该参数的值调整为5,在控制台中创建或修改密码时依然需要输入至少8个字符。但是您可以通过SET PASSWORD命令将密码修改为5个字符。
    loose_validate_password_number_count 密码中需包含的数字的个数。取值:0~256

    默认值:1

    loose_validate_password_mixed_case_count 密码中需包含的大小写字母的个数。取值:0~256

    默认值:1

    loose_validate_password_special_char_count 密码中需包含的特殊字符的个数。取值:0~256

    默认值:1

    说明 更多信息,请参见官方文档