文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  帳戶鎖定

8.2.20 帳戶鎖定

MySQL 支援使用 ACCOUNT LOCKACCOUNT UNLOCK 子句來鎖定與解除鎖定使用者帳戶,這些子句用於 CREATE USERALTER USER 陳述式。

  • 當與 CREATE USER 一起使用時,這些子句指定新帳戶的初始鎖定狀態。在沒有任何子句的情況下,帳戶會以未鎖定狀態建立。

    如果已啟用 validate_password 元件,則不允許建立沒有密碼的帳戶,即使帳戶已鎖定也是如此。請參閱 第 8.4.3 節,「密碼驗證元件」

  • 當與 ALTER USER 一起使用時,這些子句指定現有帳戶的新鎖定狀態。在沒有任何子句的情況下,帳戶鎖定狀態保持不變。

    ALTER USER ... UNLOCK 會解除聲明中指定的所有因登入失敗次數過多而暫時鎖定的帳戶。請參閱 第 8.2.15 節,「密碼管理」

帳戶鎖定狀態記錄在 mysql.user 系統表格的 account_locked 欄位中。SHOW CREATE USER 的輸出會指出帳戶是否已鎖定或未鎖定。

如果用戶端嘗試連線到鎖定的帳戶,則嘗試會失敗。伺服器會遞增 Locked_connects 狀態變數,該變數會指出嘗試連線到鎖定帳戶的次數,並傳回 ER_ACCOUNT_HAS_BEEN_LOCKED 錯誤,並將訊息寫入錯誤日誌。

Access denied for user 'user_name'@'host_name'.
Account is locked.

鎖定帳戶不會影響使用假設鎖定帳戶身份的代理使用者進行連線。它也不會影響執行具有命名鎖定帳戶的 DEFINER 屬性的儲存程式或檢視的能力。也就是說,使用代理帳戶或儲存程式或檢視的能力不受鎖定帳戶的影響。

帳戶鎖定功能取決於 mysql.user 系統表格中是否存在 account_locked 欄位。若要從 MySQL 5.7.6 之前的版本升級,請執行 MySQL 升級程序,以確保此欄位存在。請參閱第 3 章,升級 MySQL。對於未升級且沒有 account_locked 欄位的安裝,伺服器會將所有帳戶視為未鎖定,並且使用 ACCOUNT LOCKACCOUNT UNLOCK 子句會產生錯誤。