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