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