當客戶端連接 MySQL 服務器時,必須提供有效的身份認證,例如用戶名和密碼。當用戶執行任何數據庫操作時,服務器將會驗證用戶是否具有相應的權限,例如查詢表需要 SELECT 權限,刪除對象需要 DROP 權限。
MySQL 使用 CREATE USER 語句創建用戶,基本語法如下:
CREATE USER [IF NOT EXISTS] account_name IDENTIFIED BY 'password'; 其中,account_name 是賬戶名稱;賬戶名稱分為兩個部分:用戶名(user_name)和主機名(host_name),使用 % 連接。IDENTIFIED BY 用于指定用戶的密碼。IF NOT EXISTS 用于避免創建重名賬戶時產生錯誤信息。
MySQL 中的賬戶信息存儲在系統數據庫 mysql 的 user 表中:
mysql> select host, user from mysql.user; +-----------+------------------+ | host | user | +-----------+------------------+ | localhost | dev01 | | localhost | mysql.infoschema | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+------------------+ 5 rows in set (0.00 sec) 除了 dev01@localhost 之外,其他 4 個用戶都是初始化創建的系統用戶。