在MySQL 8之前,如果想要更改數據庫中已有的用戶密碼的加密規則,通常會使用ALTER USER語句以及SET PASSWORD語句來完成。但是在MySQL 8中,為了加強安全性,新增了一些要注意的事項。
首先需要注意的是,MySQL 8中為密碼加密采用了一種新的加密算法caching_sha2_password。因此如果需要修改加密規則,需要先轉換用戶密碼的加密方式。
ALTER USER 'user'@'host' IDENTIFIED WITH caching_sha2_password BY 'password';
以上命令將會將名為user的用戶的密碼加密方式轉換為caching_sha2_password,并使用指定的password設置新密碼。需要注意的是,在兩個密碼之間沒有逗號分隔符。
在執行以上命令之后,你可能會想到在MySQL 5中使用的SET PASSWORD語句。然而,該語句在MySQL 8中已不再適用。
在MySQL 8中,如果想要修改已經使用caching_sha2_password加密的用戶密碼,需要使用以下命令:
ALTER USER 'user'@'host' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
以上命令將會將名為user的用戶的密碼要求設為“無”,并禁止該用戶對數據庫進行任何操作。這樣就可以使用ALTER USER語句來設置新密碼。
總而言之,在MySQL 8中修改現有用戶密碼的加密規則需要添加額外步驟,但也為數據庫的安全性提供了更高的保障。
下一篇為什么讀取不到css