如何添加新的 MySQL 用戶并授予訪問權限
在本教程中,我們將在 MySQL 中添加一個新用戶并在 MySQL 數據庫上授予不同類型的權限。
MySQL 服務器允許我們創建多個用戶帳戶并授予適當的權限,以便用戶可以訪問和管理數據庫。在服務器上安裝 MySQL 后,您需要創建一個數據庫和其他用戶帳戶。
相關:輕松在 Docker 容器中運行 MySQL https://www.linuxmi.com/docker-run-mysql.html
為了運行以下命令,首先您需要使用 MySQL root 帳戶登錄 MySQL 服務器。
- mysql -u root -p
如何創建一個新的 MySQL 用戶
該 CREATE USER 語句在 MySQL 數據庫服務器中創建一個新用戶。以下是該語句的基本語法:
- CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
在上面的語法中,確保將用戶名和密碼替換為您想要的用戶名和密碼。
設置 hostname 到localhost,如果你希望用戶能夠只從本地主機連接到MySQL服務器,這意味著“這臺計算機”。如果您希望用戶能夠從任何主機連接,請使用%通配符作為主機名。
例如,我們將使用以下命令創建一個名為linuxmi用戶和linuxmi的密碼
- CREATE USER 'linuxmi'@'localhost' IDENTIFIED BY 'linuxmi';
但是,該用戶在被授予額外權限之前將無法使用任何 MySQL 數據庫。
如何向 MySQL 用戶授予權限
成功創建新用戶后,我們就可以為這個新用戶授予權限。在大多數情況下,您將根據帳戶應有權訪問的特定數據庫向 MySQL 用戶授予權限。
可以向用戶帳戶授予多種類型的權限。您可以在此處找到 MySQL 支持的權限的完整列表。
- ALL PRIVILEGES – 授予用戶帳戶所有權限。
- ALTER – 用戶可以更改表或數據庫的結構。
- CREATE – 允許用戶帳戶 創建數據庫 和表。
- DROP – 允許用戶帳戶刪除數據庫和表。
- DELETE – 允許用戶帳戶從特定表中刪除行。
- INSERT – 允許用戶帳戶向特定表中插入行。
- SELECT – 允許用戶帳戶讀取數據庫。
- UPDATE – 允許用戶帳戶更新表行。
相關連接:https://www.linuxmi.com/docker-run-mysql.html
要為用戶提供對 MySQL 數據庫的訪問權限并授予權限,通常需要使用以下GRANT語句:
- GRANT permission_type ON privilege_level TO 'username'@'hostname';
要將數據庫linuxmi上的所有權限授予用戶linuxmi,請使用以下命令:
- GRANT ALL PRIVILEGES ON linuxmi.* TO 'linuxmi'@'localhost';
鍵入以下內容,以便僅向linuxmi數據庫上的linuxmi的用戶授予SELECT和INSERT權限:
- GRANT SELECT, INSERT ON linuxmi.* TO 'linuxmi'@'localhost';
用戶 linuxmi 的 Grand SELECT 權限僅適用于salaries數據庫上的employees表:
- GRANT SELECT ON employees.salaries TO 'linuxmi'@'localhost';
在某些情況下,您可能希望創建另一個“超級用戶”。要授予與 MySQL root 用戶相同權限的用戶,請使用以下命令,該命令授予通過localhost連接的用戶linuxmi全局權限:
- GRANT ALL ON *.* TO 'linuxmi'@'localhost' WITH GRANT OPTION;
更改 MySQL 用戶帳戶密碼
假設要更改linuxmi 從localhost 到 連接的用戶 的密碼,則 NewStrongPass123需要執行以下 SQL 語句:
- ALTER USER 'linuxmi'@'localhost' IDENTIFIED BY 'linuxmi.com';
在上面的 SQL 語句中,請確保linuxmi 與您的數據庫用戶和 localhost 用戶的主機一起更改 。
在 MySQL 中顯示用戶的權限
在 MySQL 中,您可以使用該SHOW GRANTS命令顯示用戶的所有授權信息。讓我們舉一些例子。
以下語句使用該 SHOW GRANTS 語句顯示授予當前用戶的權限:
SHOW GRANTS;
要查看 MySQL 用戶的授權,您可以 SHOW GRANTS 在指定用戶名時使用:
- SHOW GRANTS FOR 'linuxmi'@'localhost';
撤銷 MySQL 用戶帳戶的權限
從用戶帳戶撤銷一項或多項權限的語法幾乎與授予權限時相同。
如果您需要撤銷用戶linuxmi對linuxmi數據庫的權限,請應用與授予權限時使用的語法類似的語法:
- REVOKE ALL PRIVILEGES ON linuxmi.* FROM 'linuxmi'@'localhost';
從 MySQL 中刪除用戶
您可能還想刪除該用戶,而不是撤銷權限。因此,您可以使用以下命令刪除數據庫用戶:
- DROP USER 'linuxmi'@'localhost';
上面的命令將刪除用戶linuxmi及其所有權限。
保存您的更改
作為最后一步,每次更新或更改權限時,請務必使用該FLUSH PRIVILEGES命令。
- FLUSH PRIVILEGES;
結論
完成本教程后,您應該了解如何在 MySQL 數據庫中添加新用戶并授予他們各種權限。