Navicat 部落格

2018 年 5 月 29 日,由 Robert Gravelle 撰寫

第 1 部分:保護 Root 帳號

管理資料庫使用者是資料庫管理員(DBA)的主要職責之一。協調組織中的使用者存取資料庫的方式通常需要執行許多獨立的工作,包括加入新使用者,封鎖離開了組織的使用者的存取權限以及幫助無法登入的使用者。

MySQL 附帶的 mysqladmin 命令列用戶端,用於執行管理作業。你可以使用它來檢查伺服器的設定和目前的狀態,建立和刪除資料庫等。對於想要功能稍微複雜一點的 DBA,Navicat for MySQL 和 Navicat Premium 包含管理 MySQL 使用者所需的一切功能,因此你無需啟動獨立的命令視窗。在本系列中,我們將探討如何在 Navicat 中執行常見的使用者管理工作。本篇文章描述了三個預設的 MySQL 使用者帳號以及 root 使用者的安全性。

雖然我們在本篇本章中使用 Navicat Premium。但請記住,Navicat for MySQL 也有相同的功能,只是它專門針對 MySQL 而設。

預設使用者帳號

使用者管理功能可透過「使用者」按鈕存取。按一下它將在「物件」索引標籤顯示 MySQL 連線的所有已註冊使用者。

上圖顯示了預設的使用者帳號。在安裝過程中,MySQL 會建立三個應被視為保留的使用者帳號:

  • 'root'@'localhost:超級使用者。此帳號具有所有權限,可以執行任何作業。

    嚴格來說,此帳號名稱不是保留的。因為你可以重新命名 root 帳號為其他帳號,以避免暴露具有廣為人知的高度權限的預設名稱帳號。在生產環境中,你是應該要重新命名 root 帳號的!

  • 'mysql.sys'@'localhost':用作 sys 結構描述物件的 DEFINER。使用 mysql.sys 帳號可以避免 DBA 重新命名或移除 root 帳號時出現的問題。此帳號已鎖定,因此無法用於用戶端連線。

  • 'mysql.session'@'localhost':由插件內部使用來存取伺服器。此帳號已鎖定,因此無法用於用戶端連線。

編輯使用者詳細資料

如果我們想要檢視和/或修改使用者的詳細資料,我們可以按兩下它,或在「物件」索引標籤中突顯它,然後按一下物件工具列上的「編輯使用者」按鈕。這將開啟該使用者的編輯器索引標籤。它包含五個索引標籤,分別為「一般」、「進階」、「伺服器權限」、「權限」和「SQL 預覽」。我們將在下一篇文章中更詳細地介紹這些索引標籤,但是現在,讓我們先看看如何變更「一般」索引標籤上的某些資料以保護 root 帳號。

  • 眾所周知,「root」帳號是超級使用者。因此,我們的第一個動作應該是將其變更為不太直覺的名稱,例如「secure_admin_99」。加入數字使它更難被猜測。

  • 選擇 sha256_password 插件。

    自從版本 5.5 以來的所有 MySQL 伺服版本中,預設密碼機制是使用 mysql_native_password 驗證插件(預設情況下已啟用)。此機制利用 SHA1 雜湊。雖然這個演算法在 MySQL 4.1 時代被認為是安全的,但現在已知它可能在幾年內成為可被利用的安全弱點。

    sha256_password 插件是在 MySQL 伺服器 5.6 中引入的,提供了著重於密碼儲存的額外安全性。它是透過解決使 mysql_native_password 易受攻擊的兩個關鍵元素達成這個目的:雜湊計算變得更昂貴或耗時,以及輸出是隨機的。此外,使用更強大的 SHA-256 演算法可以消除對易受攻擊的 SHA1 演算法的相依性。

  • 提供一個增強式密碼。

    增強式密碼應該難以被猜測或破解。一個好的密碼應具有以下特性:

    • 長度至少為 8 個字元。
    • 不包含你的使用者名稱、真實姓名或公司名稱。
    • 不包含完整單字。
    • 與先前的密碼完全不同。
    • 包含大寫字母、小寫字母、數字和符號。

  • 提供一個「密碼過期原則」。

    透過指定時間間隔,我們可以讓 MySQL 提示使用者在設定的天數之後變更其密碼,例如 90 天。

這是包含已更新欄位的「一般」索引標籤:

按一下「儲存」按鈕以更新帳號設定。

預告

在下一部分中,我們將學習如何建立新使用者並將權限指派給他們。

Navicat 文章
頻道記錄
分享
部落格封存檔