第 2 部分:建立新使用者
在第 1 部分中,我們學習了如何使用 Navicat Premium 使用者管理工具保護 MySQL 的 root 帳號。本篇文章將集中介紹如何設定新使用者的帳號詳細資料、帳號限制和 SSL 設定。
「一般」索引標籤
按一下物件工具列上的「新增使用者」按鈕將開啟未命名的使用者索引標籤。它包含五個索引標籤,分別為「一般」、「進階」、「伺服器權限」、「權限」和「SQL 預覽」。我們已在第 1 部分中介紹了「一般」索引標籤,但我們會在此快速回顧一下。在「一般」索引標籤上,我們需要提供:
- 「使用者名稱」。
- 「主機」。
- 加密「插件」。從下拉式清單中選擇「mysql_native_password」或「sha256_password」。
- 「密碼」。
- 「密碼過期原則」。
設定密碼原則
MySQL 允許資料庫管理員手動設定帳號密碼過期,並使用 MySQL 的 mysql_native_password 或 sha256_password 內建驗證插件建立自動密碼過期的原則。
Navicat 透過下拉式清單提供幾個選項,撮要了使用 PASSWORD EXPIRE 語句設定密碼到期的常用 MySQL 機制。他們是:
- DEFAULT:將密碼到期時間長度設定為資料庫的預設值。在版本 5.7.11 之前,預設值為 360 天。從版本 5.7.11 開始,預設值為 0 天,這能有效地停用自動密碼到期。
- IMMEDIATE:使帳號密碼過期,從而強制使用者更新它。
- INTERVAL:指定目前密碼到期的天數。
- NEVER:允許目前密碼無限期保持有效狀態。對指令碼和其他自動化程序是很有用的。
這是一個例子:
「進階」索引標籤
你可以在此處找到帳號限制和 SSL 的設定。
帳號限制
MySQL 允許限制個人帳號使用各種伺服器資源,以避免任何一個使用者獨占資源。限制包括:
- 一個帳號每小時可以發出的查詢數目。
- 一個帳號每小時可以發出的更新數目。
- 一個帳號每小時可連線到伺服器的數目。
- 一個帳號可連線到伺服器的總數。
這些等同於「進階」索引標籤中的欄位:「每小時最大查詢數目」、「每小時最大更新數目」、「每小時最大連線數目」和「最大使用者連線數目」。這些欄位每一個都接受零(0)或正整數的值。
SSL 設定
要使用加密連線,系統中必須有 OpenSSL 或 yaSSL。此外,MySQL 伺服器需要使用 TLS 支援構建,並正確設定為使用 OpenSSL 或 yaSSL 的其中一個。請注意,術語 SSL,指的是在 TLS 之前的現在不安全的舊通訊協定。儘管 MySQL 僅使用其更安全(TLS)的後繼通訊協定,但出於相容性原因仍在許多變數名稱和選項中使用。
「SSL 類型」下拉式欄位對應 mysql.user 資料表的 ssl_type 欄,該欄僅接受某些值:ANY、SPECIFIED 和 X509(以及 '' 表示 NONE)。
此外,MySQL GRANT 語句還接受 ISSUER、SUBJECT 和 CIPHER 選項。這些選項可以按任何順序組合在一起,而且如果你使用它們其中一個,則 REQUIRE X509 是隱含的。
這是一個 GRANT 語句,接下來是對應的 Navicat「進階」索引標籤:
GRANT USAGE ON *.* TO 'bob_s'@'localhost'
REQUIRE SUBJECT '/CN=www.mydom.com/O=My Dom, Inc./C=US/ST=Oregon/L=Portland'
AND ISSUER '/C=FI/ST=Somewhere/L=City/ O=Some Company/CN=Peter Parker/emailAddress=Email住址會使用灌水程式保護機制。你需要啟動Javascript才能觀看它'
AND CIPHER 'SHA-DES-CBC3-EDH-RSA';
預告
在第 3 部分中,我們將繼續討論最後三個使用者索引標籤。