This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

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_namehost_namemysql.user 表中某行的User列和Host列。

PASSWORD() 函数返回的是一个41字符的hash值。

PASSWORD() 的参数部分以及想要给MariaDB客户端设定的密码长度可以为任意长度。

示例

例如,在 mysql.user 表中有一行记录的User列和Host列的值分别为'bob'和'%.loc.gov',可以写类似如下语句:

SET PASSWORD FOR 'bob'@'%.loc.gov' = PASSWORD('newpass');

See Also

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.