本文為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`);