MySQL 帳戶(hù)是你在 MySQL 數(shù)據(jù)庫(kù)服務(wù)器上的標(biāo)識(shí)符,它用于建立連接、訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)和執(zhí)行查詢(xún)等操作。
MySQL 有兩種類(lèi)型的帳戶(hù):超級(jí)用戶(hù)(也稱(chēng)為 root 用戶(hù))和普通用戶(hù)。超級(jí)用戶(hù)擁有最高的權(quán)限,可以執(zhí)行任何操作,包括創(chuàng)建和刪除用戶(hù)帳戶(hù)。而普通用戶(hù)的權(quán)限受到限制,只能執(zhí)行其被授權(quán)的操作。
MySQL 支持多種認(rèn)證方式,常用的包括 MySQL 原生認(rèn)證和基于插件的認(rèn)證。在 MySQL 8.0 版本中,默認(rèn)采用基于插件的認(rèn)證方式。
要?jiǎng)?chuàng)建一個(gè)新的 MySQL 帳戶(hù),可以使用 CREATE USER 語(yǔ)句。該語(yǔ)句的基本語(yǔ)法如下:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
其中,username 是帳戶(hù)名,hostname 是主機(jī)名,可以使用通配符(如 %)表示任何主機(jī)。IDENTIFIED BY 子句是可選的,如果省略,將創(chuàng)建一個(gè)沒(méi)有密碼的帳戶(hù)。
要為 MySQL 帳戶(hù)授予權(quán)限,可以使用 GRANT 語(yǔ)句。例如,以下語(yǔ)句將授予 myuser 帳戶(hù)對(duì) mydb 數(shù)據(jù)庫(kù)的 SELECT 和 INSERT 權(quán)限:
GRANT SELECT, INSERT ON mydb.* TO 'myuser'@'%' IDENTIFIED BY 'password';
如果要撤銷(xiāo)權(quán)限,可以使用 REVOKE 語(yǔ)句。例如,以下語(yǔ)句將撤銷(xiāo) myuser 帳戶(hù)對(duì) mydb 數(shù)據(jù)庫(kù)的 INSERT 權(quán)限:
REVOKE INSERT ON mydb.* FROM 'myuser'@'%';
在使用 MySQL 帳戶(hù)時(shí),需要注意以下安全性問(wèn)題:
- 避免使用 root 帳戶(hù)進(jìn)行常規(guī)操作,應(yīng)該創(chuàng)建一個(gè)普通用戶(hù),并為其賦予足夠的權(quán)限。
- 為帳戶(hù)設(shè)置強(qiáng)密碼,并定期更換密碼。
- 限制帳戶(hù)的訪(fǎng)問(wèn)范圍,只為其授予必要的權(quán)限。