---
title: 编组
description: 设置密码复杂度 OceanBase 数据库 MySQL 模式的密码复杂度策略，兼容 MySQL 数据库的密码策略。为了防止恶意的密码攻击，提升数据库的安全性，OceanBase 数据库用户可以根据需要设置密码的复杂度函数，验证用户登录身份。 密码复杂度规则说明 OceanBase 数据库的 MySQL 模式主要通过设…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# 设置密码复杂度

更新时间：2023-07-18 17:26:00

OceanBase 数据库 MySQL 模式的密码复杂度策略，兼容 MySQL 数据库的密码策略。为了防止恶意的密码攻击，提升数据库的安全性，OceanBase 数据库用户可以根据需要设置密码的复杂度函数，验证用户登录身份。

## 密码复杂度规则说明

OceanBase 数据库的 MySQL 模式主要通过设置一系列系统变量来规定密码的复杂度规则，这些系统变量及其相关说明如下表所示。

| 变量名 | 描述 | 使用说明 |
| --- | --- | --- |
| validate_password_check_user_name | 检查用户密码，是否可以和用户名相同。 | - `on` ：表示用户密码不可以和用户名相同。 - `off` ：表示用户密码可以和用户名相同。默认值为为 `off`。 |
| validate_password_length | 设置用户密码最小长度。 | 默认值为 `0`。 |
| validate_password_mixed_case_count | 设置用户密码至少包含的大写字母和小写字母个数。 | 默认值为 `0`。 |
| validate_password_number_count | 设置用户密码至少包含的数字个数。 | 默认值为 `0`。 |
| validate_password_policy | 设置密码检查策略。 | - `Low` ：表示仅包含密码长度检测。默认值为 `low`。 - `Medium`：表示包括密码长度检测、大写字母个数检测、小写字母个数检测、数字个数检测、特殊字符个数检测、用户名密码相同检测。 |
| validate_password_special_char_count | 用户密码至少包含的特殊字符个数。 | 默认值为 `0`。 |

更多变量的介绍及说明信息，请参见《参考指南》文档中的 **系统变量** 章节。

## 设置密码复杂度

本节以设置密码复杂度规则为最小长度为 8 个字符，至少包含 3 个大写字母、3 个小写字母和 1 个特殊字符、用户密码不可以与用户名相同并且检查策略为 `medium` 为例，提供设置密码复杂度的操作指导。

1. 以管理员用户登录数据库的 MySQL 租户。
 2. 设置变量值。

   ```sql
   obclient> SET GLOBAL validate_password_check_user_name=on;
   obclient> SET GLOBAL validate_password_length=8;
   obclient> SET GLOBAL validate_password_mixed_case_count=3;
   obclient> SET GLOBAL validate_password_special_char_count=1;
   obclient> SET GLOBAL validate_password_policy='medium';

   ```
 3. 退出后重新登录，确认设置是否生效。

   ```sql
   obclient> SHOW VARIABLES LIKE 'validate%';
   +--------------------------------------+--------+
   +--------------------------------------+--------+
   | VARIABLE_NAME                        | VALUE  |
   +--------------------------------------+--------+
   | validate_password_check_user_name    | on     |
   | validate_password_length             | 8      |
   | validate_password_mixed_case_count   | 3      |
   | validate_password_number_count       | 0      |
   | validate_password_policy             | medium |
   | validate_password_special_char_count | 1      |
   +--------------------------------------+--------+
   6 rows in set (0.00 sec)

   ```
 4. 创建用户，验证密码复杂度策略。

   创建 2 个用户，分别设置为符合要求的密码和不符合要求的密码。

   ```sql
   obclient> CREATE USER sectest1 IDENTIFIED BY '******';
   ERROR 1819 (HY000): Your password does not satisfy the current policy
   requirements

   obclient> CREATE USER sectest1 IDENTIFIED BY '******';
   Query OK, 0 rows affected

   ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
