資料庫

查詢 MySQL/MariaDB 資料庫的使用者帳號教學

介紹如何查詢 MySQL/MariaDB 資料庫的使用者帳號有哪些,以及各有那些使用權限。

查詢 MySQL/MariaDB 資料庫使用者帳號

若要查詢 MySQL/MariaDB 資料庫中有哪一些使用者帳號,可以先用 root 管理者登入之後,再用以下的指令查詢:

-- 查詢資料庫使用者
SELECT User FROM mysql.user;
+-------------+
| User        |
+-------------+
| root        |
| root        |
| root        |
| officeguide |
| root        |
+-------------+

如果只要列出不重複的使用者名稱,可以加上 DISTINCT

-- 查詢資料庫使用者(刪除重複的)
SELECT DISTINCT User FROM mysql.user;
+-------------+
| User        |
+-------------+
| root        |
| officeguide |
+-------------+

因為 MySQL/MariaDB 資料庫的使用者帳號是有區分來源主機的,若來源主機不同則視為不同帳號,所以查看帳號時通常要連同來源主機一起看:

-- 查詢資料庫使用者與來源主機
SELECT User, Host FROM mysql.user;
+-------------+-----------------+
| User        | Host            |
+-------------+-----------------+
| root        | 127.0.0.1       |
| root        | ::1             |
| root        | desktop-rtre85j |
| officeguide | localhost       |
| root        | localhost       |
+-------------+-----------------+

查詢使用者帳號權限

若要查詢各使用者帳號的資料庫存取權限,可以使用 SHOW GRANTS 指令:

-- 查詢使用者的細部權限
SHOW GRANTS FOR 'officeguide'@'localhost';
+--------------------------------------------------------------------------------------------------------------------+
| Grants for officeguide@localhost                                                                                   |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'officeguide'@'localhost' IDENTIFIED BY PASSWORD '*4B0FC9D71B9D953B1D371128BB9E294A7B1ABA73' |
| GRANT ALL PRIVILEGES ON `officeguide_db`.* TO 'officeguide'@'localhost'                                            |
+--------------------------------------------------------------------------------------------------------------------+

以下指令可以幫助管理者產生用來查詢使用者細部權限的指令:

-- 產生查詢使用者細部權限指令
SELECT DISTINCT CONCAT('SHOW GRANTS FOR ', QUOTE(user), '@', QUOTE(host), ';') AS query FROM mysql.user;
+--------------------------------------------+
| query                                      |
+--------------------------------------------+
| SHOW GRANTS FOR 'root'@'127.0.0.1';        |
| SHOW GRANTS FOR 'root'@'::1';              |
| SHOW GRANTS FOR 'root'@'desktop-rtre85j';  |
| SHOW GRANTS FOR 'officeguide'@'localhost'; |
| SHOW GRANTS FOR 'root'@'localhost';        |
+--------------------------------------------+

如果想要更改使用者的密碼(例如忘記密碼)或是使用權限,可以參考 MySQL/MariaDB 資料庫使用者帳號管理教學

參考資料:nixCraft

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago