

# 比较 Aurora MySQL 版本 3 和 Aurora MySQL 版本 8.4
<a name="AuroraMySQL.Compare-v3-v84"></a>

与 Aurora MySQL 版本 3（兼容 MySQL 8.0）相比，Amazon Aurora MySQL 版本 8.4 引入了重要的增强功能和更改。本指南重点介绍主要区别，帮助您了解新增和更改的功能。

**Topics**
+ [身份验证和安全](#AuroraMySQL.Compare-v3-v84.auth)
+ [密码管理](#AuroraMySQL.Compare-v3-v84.password)
+ [参数默认更改](#AuroraMySQL.Compare-v3-v84.parameters)
+ [权限和角色](#AuroraMySQL.Compare-v3-v84.privileges)

## 身份验证和安全
<a name="AuroraMySQL.Compare-v3-v84.auth"></a>

### 身份验证插件管理
<a name="AuroraMySQL.Compare-v3-v84.auth-plugin"></a>

**Aurora MySQL 版本 3** 使用 `default_authentication_plugin` 参数为新数据库用户配置默认身份验证插件。

**Aurora MySQL 版本 8.4** 将 `default_authentication_plugin` 替换为 `authentication_policy` 参数，后者提供了更灵活的身份验证配置。

### TLS 和加密
<a name="AuroraMySQL.Compare-v3-v84.tls"></a>

**Aurora MySQL 版本 8.4** 执行更严格的安全标准：
+ 默认情况下，`ON` 参数设置为 `require_secure_transport`，要求所有连接都使用 TLS。
+ 仅支持 TLS 1.2 和 TLS 1.3。
+ 实施现代化加密标准，使用限定的加密套件。

有关更多信息，请参阅 [使用 Amazon Aurora MySQL 实现高安全性](AuroraMySQL.Security.md)。

## 密码管理
<a name="AuroraMySQL.Compare-v3-v84.password"></a>

### 密码验证
<a name="AuroraMySQL.Compare-v3-v84.password-validation"></a>

Aurora MySQL 版本 3 通过手动安装支持 `validate_password` 插件和组件，仅限使用默认参数，无法进行自定义。

Aurora MySQL 版本 8.4 支持通过数据库集群参数管理 `validate_password` 组件：
+ 新集群参数：`aurora_enable_validate_password_component`
+ 无需手动安装，只需通过参数启用或禁用。
+ 组件不在 `mysql.component` 表中列出。
+ 组件状态可以通过集群参数组 API 或全局变量 `aurora_enable_validate_password_component` 来检查。

Aurora MySQL 版本 8.4 引入了以下用于自定义密码验证的集群级参数：
+ `validate_password.check_user_name`
+ `validate_password.length`
+ `validate_password.mixed_case_count`
+ `validate_password.number_count`
+ `validate_password.policy`（仅支持 LOW 和 MEDIUM 级别）
+ `validate_password.special_char_count`

有关更多信息，请参阅 [Aurora MySQL 中的密码策略和密码验证](AuroraMySQL.PasswordPolicies.md)。

Aurora MySQL 8.4 版本中删除了以下不可修改的实例级 `validate_password` 插件参数：
+ `validate-password`
+ `validate_password_dictionary_file`
+ `validate_password_length`
+ `validate_password_mixed_case_count`
+ `validate_password_number_count`
+ `validate_password_policy`
+ `validate_password_special_char_count`

有关更多信息，请参阅 [Aurora MySQL 配置参数](AuroraMySQL.Reference.ParameterGroups.md)。

### 密码策略
<a name="AuroraMySQL.Compare-v3-v84.password-policies"></a>

**Aurora MySQL 版本 8.4** 通过新的集群参数添加了全面的密码策略支持：
+ `default_password_lifetime`
+ `password_history`
+ `password_reuse_interval`
+ `password_require_current`
+ `disconnect_on_expired_password`

这些参数与每个账户的密码策略配合使用，可实现精细控制。有关更多信息，请参阅 [Aurora MySQL 中的密码策略和密码验证](AuroraMySQL.PasswordPolicies.md)。

## 参数默认更改
<a name="AuroraMySQL.Compare-v3-v84.parameters"></a>

### temptable\_max\_mmap
<a name="AuroraMySQL.Compare-v3-v84.temptable-max-mmap"></a>

**Aurora MySQL 版本 3** 在所有实例类和存储配置中，为 `temptable_max_mmap` 参数使用固定的默认值 1 GiB（`1073741824`）。

**Aurora MySQL 版本 8.4.7 及更高版本**会根据集群的分配存储空间动态计算默认值。公式如下：

```
LEAST(4294967296, {AllocatedStorage*3/100})
```

这会将默认值设置为所分配存储空间的 3%，上限为 4 GiB。默认值随存储容量而扩展，但要保持在上限范围内，这有助于减少使用 TempTable 存储引擎的读取器实例的查询故障数。

有关参数引用条目，请参阅 [Aurora MySQL 配置参数](AuroraMySQL.Reference.ParameterGroups.md)。

## 权限和角色
<a name="AuroraMySQL.Compare-v3-v84.privileges"></a>

### 新增动态权限
<a name="AuroraMySQL.Compare-v3-v84.new-privileges"></a>

**Aurora MySQL 版本 8.4** 支持授予 `rds_superuser_role` 的下列新权限：
+ `ALLOW_NONEXISTENT_DEFINER`
+ `FLUSH_PRIVILEGES`
+ `OPTIMIZE_LOCAL_TABLE`
+ `SET_ANY_DEFINER`

`SET_USER_ID` 权限已被移除，因为该权限被替换为 `ALLOW_NONEXISTENT_DEFINER` 和 `SET_ANY_DEFINER`。

有关更多信息，请参阅 [主用户账户权限](UsingWithRDS.MasterAccounts.md)。

### 主用户行为
<a name="AuroraMySQL.Compare-v3-v84.master-user"></a>

**Aurora MySQL 版本 3：**默认情况下，主用户使用 `mysql_native_password` 身份验证插件，基于密码进行身份验证。

**Aurora MySQL 版本 8.4：**主用户身份验证插件设置为在 `authentication_policy` 集群参数中定义的默认值（默认为 `caching_sha2_password` 插件）。

通过 Amazon Web Services 管理控制台、CLI 或 API 或者通过 Amazon Secrets Manager 轮换重置主用户密码时，Aurora 自动使用重置时的现有 `authentication_policy` 参数值定义的身份验证插件。

### `rdsproxyadmin` 的受保护用户强制实施
<a name="AuroraMySQL.Compare-v3-v84.reserved-users"></a>

**Aurora MySQL 版本 3：**`rdsproxyadmin` 是 RDS 代理的保留用户名。但是，引擎不会阻止您创建、修改或删除具有该名称的数据库用户。

**Aurora MySQL 版本 8.4（从 8.4.7 开始）：**`rdsproxyadmin` 是受保护用户。引擎拒绝任意主机上针对 `rdsproxyadmin` 的 `CREATE`、`DROP`、`RENAME`、`GRANT`、`REVOKE` 和 `SET PASSWORD` 操作。有关被拒绝操作和错误示例的完整列表，请参阅 [Aurora MySQL 中的预留用户](AuroraMySQL.Security.md#AuroraMySQL.Security.ReservedUsers)。

如果您在版本 3 集群中创建了 `rdsproxyadmin` 用户，请参阅 [`rdsproxyadmin` 的受保护用户强制实施](AuroraMySQL.Upgrade-v3-v84-security.md#AuroraMySQL.Upgrade-v3-v84-security.rdsproxyadmin)以获取升级前指南。