
# 自定义DWS密码策略
创建用户或修改用户时需要指定密码，DWS有默认的密码复杂度要求，也支持用户自定义数据库账户密码策略。
 #### DWS默认密码策略
DWS默认进行密码复杂度校验，默认密码策略要求如下：
- 长度为8\~32个字符。

- 至少包含大写字母、小写字母、数字或特殊字符中三种的组合。支持的特殊字符参见[表1]。
- 不能是用户名和用户名反序，此条要求为非大小写敏感。
- 不能与当前密码或当前密码的反序相同。
 表1支持的特殊字符 
| 编号 | 字符 | 编号 | 字符 | 编号 | 字符 | 编号 | 字符 |
|:---|:---|:---|:---|:---|:---|:---|:---|
| 1  | \~ | 9  | \* | 17 | \| | 25 | \< |
| 2  | ！  | 10 | (  | 18 | \[ | 26 | .  |
| 3  | @  | 11 | )  | 19 | {  | 27 | \> |
| 4  | #  | 12 | -  | 20 | }  | 28 | /  |
| 5  | $  | 13 | _  | 21 | \] | 29 | ？  |
| 6  | %  | 14 | =  | 22 | ；  | -  | -  |
| 7  | \^ | 15 | +  | 23 | ：  | -  | -  |
| 8  | \& | 16 | \\ | 24 | ，  | -  | -  |
   
#### 密码设置和修改
- 建议系统管理员和普通用户都要定期修改自己的账户密码，避免账户密码被非法窃取。 以修改用户u1密码为例，使用管理员用户连接数据库并执行如下命令：
  ```
  ALTER USER u1 IDENTIFIED BY 'newpassword' REPLACE 'oldpassword';
  ```
  ![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
  密码要符合[DWS默认密码策略]，否则会执行失败。
  
- 管理员可以修改自己的或者其他账户的密码。通过修改其他账户的密码，解决用户密码遗失所造成无法登录的问题。 以修改用户joe账户密码为例，命令格式如下：
  ```
  ALTER USER joe IDENTIFIED BY 'password';
  ```
  
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
- 系统管理员之间不允许互相修改对方密码。
- 系统管理员可以修改普通用户密码且不需要用户原密码。
- 系统管理员可以修改自己的密码但需要管理员原密码。
 
- 密码验证 设置当前会话的用户和角色时，需要验证密码。如果输入密码与用户的存储密码不一致，则会报错。
  以设置用户joe为例，命令格式如下：
  ```
  SET ROLE joe PASSWORD 'password';
  ```
  显示如下命令表示设置成功：
  ```
  SET ROLE
  ```
  
 
