2024年10月5日 星期六

MySQL Workbench 管理資料庫

 MySQL Workbench 管理資料庫

  1. 說明

使用 MySQL Workbench 工具,透過 SSH 通道來連接遠端 MySQL 伺服器的安全方式管理遠端資料庫。

  1. 環境

遠端伺服器

  • Ubuntu 22.04

  • MySQL 8.0.38

    • /etc/mysql/mysql.conf.d/mysqld.cnf,bind-address = 127.0.0.1, 此設定為限本機連線。

  • SSH

Local 機器

  • Windows 11

  • MySQL Workbench


  1. 設定

  • SSH 伺服器設定「AllowTCPForwarding yes」

AllowTCPForwarding 是 SSH 伺服器的一個設定項目,用來控制是否允許客戶端透過 SSH 連線建立 TCP 轉發。

當此設定為 yes 時,SSH 客戶端可以建立 SSH 隧道,將本地端口轉發到遠端伺服器的其他端口。這意味著,你可以透過 SSH 連線,將本地應用程式(例如 MySQL Workbench)連接到遠端伺服器的 MySQL 資料庫。


安全性考量

風險: 允許 TCP 轉發可能會帶來一些安全風險,例如,惡意使用者可能利用 SSH 隧道進行端口掃描或其他攻擊。

建議:

  • 限制訪問: 只允許特定的用戶或 IP 地址進行 SSH 連接。

  • 使用 SSH 密鑰: 避免使用密碼,使用 SSH 密鑰進行身份驗證。

  • 定期更新 SSH 服務器: 及時修復安全漏洞。

  • 監控 SSH 日誌: 定期檢查 SSH 日誌,發現異常活動。



$ sudo vim /etc/ssh/sshd_config 

AllowTCPForwarding yes  #將此行之註解符號刪除,如未使用在註解。

$ sudo sshd -t

$ sudo systemctl restart sshd


  •  MySQL Workbench 中設定 SSH 連線

建立新連線:

開啟 MySQL Workbench,點擊「+」按鈕建立新的連線。

選擇「Standard TCP/IP over SSH」作為連線類型。


填寫連線資訊:

  • SSH 主機名: 輸入 SSH 伺服器的 IP 地址或域名,以及端口號(通常為 22)。

  • SSH 用戶名: 輸入用於 SSH 連線的用戶名。

  • SSH 密碼: 輸入 SSH 密碼。建議使用 SSH 密鑰來增強安全性。

  • SSH 密鑰文件: 如果使用 SSH 密鑰,指定密鑰文件的路徑。

  • MySQL 主機名: 通常為 127.0.0.1,表示連接本地 MySQL 伺服器。

  • MySQL 伺服器端口: 通常為 3306。


測試連線:

點擊「Test Connection」按鈕測試連線是否成功。