MySQL 數(shù)據(jù)庫服務(wù)器通常是開發(fā)人員和任何愿意測試結(jié)構(gòu)化查詢語言的人的首選。MySQL 具有許多使其可靠、安全和高效的特性。但是,有一些方法可以進(jìn)一步提高 MySQL 服務(wù)器的安全性。其中之一是創(chuàng)建對數(shù)據(jù)庫具有有限權(quán)限的用戶。
在本教程中,我們將提供更多背景信息,說明為什么您應(yīng)該創(chuàng)建單獨(dú)的 MySQL 用戶帳戶,并介紹如何在Linux 服務(wù)器上使用 MySQL SHOW USERS 命令。
為什么要在 MySQL 服務(wù)器中創(chuàng)建用戶?
每當(dāng)用戶或數(shù)據(jù)庫管理員安裝 MySQL時,將創(chuàng)建的第一個用戶是 root 用戶——MySQL 管理員。root 用戶將有權(quán)在 MySQL 數(shù)據(jù)庫上執(zhí)行所有操作。
雖然擁有所有權(quán)限似乎是有益的,但這樣做會帶來自身的安全缺陷,并且在多人之間共享 root 用戶是危險的。黑客經(jīng)常嘗試以 root 用戶身份登錄并竊取托管信息,甚至破壞整個 MySQL 服務(wù)器及其數(shù)據(jù)。因此,系統(tǒng)管理員創(chuàng)建了對某些數(shù)據(jù)庫具有特定權(quán)限的用戶。換句話說,如果一個帳戶的憑證被泄露,影響將是最小的并且是可控的。
如何在 Linux 上的 MySQL 數(shù)據(jù)庫中顯示用戶
與立即顯示所有數(shù)據(jù)庫或表的 SHOW DATABASES 或 SHOW TABLES 命令不同,SHOW USERS 命令在 MySQL 中不存在。即使沒有這樣的命令,用戶也可以使用 MySQL 查詢并獲得給定 MySQL 數(shù)據(jù)庫服務(wù)器中用戶的完整列表。
請按照以下步驟獲取更多信息。
1.以MySQL根用戶身份登錄
首先以root 用戶身份通過?? SSH 登錄 VPS 。完成后,使用以下命令進(jìn)入 MySQL 命令行:
sudo mysql -u root -p
然后,輸入您的 MySQL root 密碼。
重要的!請記住,系統(tǒng)和 MySQL root 密碼是分開的,并且可以不同。
一旦您以 root 用戶身份進(jìn)入 MySQL 控制臺,您將能夠運(yùn)行查詢以顯示其他 MySQL 用戶。
2. 使用 MySQL SHOW USERS 查詢
使用以下查詢顯示在數(shù)據(jù)庫服務(wù)器中創(chuàng)建的 MySQL 用戶:
從 mysql.user 中選擇用戶;
結(jié)果,您將看到已在 MySQL 中創(chuàng)建的所有用戶的列表。
請注意,可能存在重復(fù)的用戶。這是因?yàn)?MySQL 根據(jù)服務(wù)器的來源 IP 地址過濾對服務(wù)器的訪問。
您還可以使用以下命令添加主機(jī)列以查看更多信息:
從 mysql.user 中選擇用戶,主機(jī);
這樣,您將能夠看到 MySQL 用戶以及他們有權(quán)訪問的主機(jī)或 IP 地址。在我們的例子中,所有用戶都來自本地數(shù)據(jù)庫:
3.查看更多MySQL用戶信息(可選)
如果您需要有關(guān) MySQL 用戶的更多信息,可以在 MySQL 查詢的幫助下擴(kuò)展搜索命令。
例如,以下命令將從用戶表中打印出所有可能的信息:
從 mysql.user 中選擇 *;
但是,這樣的輸出可能看起來太亂以至于無法理解。因此,我們建議使用更具體的查詢來縮小搜索范圍。
以下是一些更受歡迎的用例:
預(yù)覽表列
以下查詢將顯示用戶表列的預(yù)覽。如果用戶想要檢查有關(guān)特定表的信息,這將特別有用。
DESC mysql.用戶
僅顯示唯一的用戶名
要跳過重復(fù)的用戶名,可以使用以下查詢:
從 mysql.user 中選擇不同的用戶;
密碼過期和帳戶鎖定狀態(tài)
要檢查密碼過期狀態(tài)和帳戶鎖定狀態(tài),請使用以下查詢:
SELECT user, account_locked, password_expired FROM mysql.user;
顯示當(dāng)前和當(dāng)前登錄的用戶
可以使用以下查詢顯示當(dāng)前用戶:
選擇當(dāng)前用戶();
如果您需要更多信息,您可以修改查詢以顯示當(dāng)前登錄的用戶及其狀態(tài)。此命令有利于查找占用過多資源的空閑用戶。
從 information_schema.processlist 中選擇用戶、主機(jī)、命令;
結(jié)論
數(shù)據(jù)庫服務(wù)器的管理可能是一項具有挑戰(zhàn)性的工作。因此,數(shù)據(jù)庫管理員在創(chuàng)建和管理用戶權(quán)限時必須小心。MySQL?SHOW USERS命令允許管理員查看 MySQL 用戶以及其他重要信息。
回顧一下,我們已經(jīng)介紹了如何顯示綁定到數(shù)據(jù)庫的 MySQL 用戶的基礎(chǔ)知識,并學(xué)習(xí)了如何:
- 列出在給定 MySQL 數(shù)據(jù)庫中創(chuàng)建的所有用戶
- 預(yù)覽 MySQL 數(shù)據(jù)庫表列
- 僅顯示表中唯一的用戶名
- 檢查密碼過期和帳戶鎖定狀態(tài)
- 在 MySQL 數(shù)據(jù)庫中顯示當(dāng)前和當(dāng)前登錄的用戶