SET PASSWORD
功能描述
SET PASSWORD
用于修改用户密码。
注意事项
- 该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。
- 不指定用户则修改当前连接用户密码。
- 初始用户可以修改任何用户的密码(包括自身密码),不需要指定REPLACE校验当前密码。
- 非初始用户不能修改初始用户的密码。
- sysadmin和拥有createrole权限的用户可以修改其他(非初始化、非sysadmin,非createrole权限)用户密码,不需要指定REPLACE校验当前密码。
- sysadmin和拥有createrole权限的用户修改自身密码时,需要指定REPLACE校验当前密码。
语法格式
SET PASSWORD [FOR user] = password_option [REPLACE 'current_auth_string']
其中password_option为:
{
'auth_string'
| PASSWORD('auth_string')
}
参数说明
[FOR user]
用户名,user支持以下形式:
- user(不区分大小写)
- 'user'(区分大小写)
- “user”(区分大小写)
- 'user'@'host'(区分大小写)
- current_user()/current_user
auth_string
需要设置的密码。
current_auth_string
当前密码。
示例
1、创建用户。
create user user1 with password 'Aa12345678';
2、修改指定用户密码。
set password for user1 = 'Aa123456';
3、修改当前用户密码(以下三个命令等效)。
set password = 'Aa123456';
set password for current_user = 'Aa123456';
set password for current_user() = 'Aa123456';