本文为mariadb官方手册:SET PASSWORD的译文。
原文:https://mariadb.com/kb/en/library/set-password/
我提交到MariaDB官方手册的译文:https://mariadb.com/kb/zh-cn/set-password/
语法
SET PASSWORD [FOR user] =
{
PASSWORD('some password')
| OLD_PASSWORD('some password')
| 'encrypted password'
}
描述
SET PASSWORD语句用于为一个已存在的MariaDB用户分配密码。
如果密码是使用PASSWORD()
函数或OLD_PASSWORD()
函数指定的,则需要给定待加密的明文字符。如果密码不使用任何函数指定,则给出的密码值必须是已经加密过的密文,就如PASSWORD()
返回的值一样。
OLD_PASSWORD()
函数只应在MariaDB/MySQL客户端版本非常老(< 4.0.0)时才使用。
如果不给定 FOR 子句,该语句将为当前用户设置密码。任何使用非匿名账户连接到服务端的客户端都能够为其自身用户设置密码。
给定 FOR 子句时,该语句将为指定用户设置密码。只有对 mysql 数据库拥有 UPDATE 权限的客户端才能执行此操作。指定用户时的格式为 user_name@host_name,其中 user_name 和 host_name 是 mysql.user 表中某行的User列和Host列。
PASSWORD()
函数返回的是一个41字符的hash值。
PASSWORD()
的参数部分以及想要给MariaDB客户端设定的密码长度可以为任意长度。
示例
例如,在 mysql.user 表中有一行记录的User列和Host列的值分别为'bob'
和'%.loc.gov'
,可以写类似如下语句:
SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');