文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  RENAME USER 語法

15.7.1.7 RENAME USER 語法

RENAME USER old_user TO new_user
    [, old_user TO new_user] ...

RENAME USER 語法會重新命名現有的 MySQL 帳戶。如果舊帳戶不存在或新帳戶已存在,則會發生錯誤。

若要使用 RENAME USER,您必須擁有全域的 CREATE USER 權限,或是 mysql 系統綱要的 UPDATE 權限。當 read_only 系統變數啟用時,RENAME USER 還需要 CONNECTION_ADMIN 權限 (或已被棄用的 SUPER 權限)。

如果任何要重新命名的帳戶被指定為任何儲存物件的 DEFINER 屬性,RENAME USER 會失敗並產生錯誤。(也就是說,如果重新命名帳戶會導致儲存物件成為孤立的,則語句會失敗。)若要無論如何都執行此操作,您必須擁有 SET_ANY_DEFINERALLOW_NONEXISTENT_DEFINER 權限;在這種情況下,語句會成功並產生警告,而不是失敗並產生錯誤。如需其他資訊,包括如何識別哪些物件將特定帳戶命名為 DEFINER 屬性,請參閱 孤立的儲存物件

每個帳戶名稱使用 第 8.2.4 節「指定帳戶名稱」中描述的格式。例如:

RENAME USER 'jeffrey'@'localhost' TO 'jeff'@'127.0.0.1';

帳戶名稱的主機名稱部分,如果省略,則預設為 '%'

RENAME USER 會導致舊使用者持有的權限變成新使用者持有的權限。然而,RENAME USER 不會自動刪除或使舊使用者建立的資料庫或其中的物件失效。這包括 DEFINER 屬性命名為舊使用者的儲存程式或檢視。如果這些物件在定義者安全內容中執行,則嘗試存取這些物件可能會產生錯誤。(有關安全內容的資訊,請參閱 第 27.6 節「儲存物件存取控制」。)

權限變更會如 第 8.2.13 節「權限變更生效的時間」中所示生效。