Networking

MySQL:創建一個可以從多個主機連接的使用者

  • September 30, 2021

我正在使用 MySQL,我需要創建一個可以從本地主機或另一台伺服器(即 10.1.1.1)連接的帳戶。所以我在做:

CREATE USER 'bob'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'bob'@'10.1.1.1' IDENTIFIED BY 'password123';
GRANT SELECT, INSERT, UPDATE, DELETE on MyDatabse.* to 'bob'@'localhost', 'bob'@'10.1.1.1';

這很好用,但是有沒有更優雅的方法來創建連結到多個 IP 的使用者帳戶,或者是否需要這樣做?

我主要擔心的是,將來,一個“bob”帳戶的權限將更新,而另一個帳戶則不會。

如果您想限制主機並且不想基於子網或萬用字元使用 指定%,這是唯一的方法。MySQL 文件中提供了更多詳細資訊。

在管理大型 MySQL 安裝的身份驗證時,我仍在嘗試尋找消除成本的方法,但尚未找到完美的解決方案。

讓我們首先在 MySQL shell 中創建一個名為“chaminda”的新使用者:

CREATE USER 'chaminda'@'%' IDENTIFIED BY 'password';

首先要做的是為使用者提供必要的權限,在這裡我已將所有權限授予特定使用者。

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'%';

重新載入所有權限。

FLUSH PRIVILEGES;

如果要允許特定使用者使用 IP 範圍,請使用以下 10.1.1.%

GRANT ALL PRIVILEGES ON * . * TO 'chaminda'@'10.1.1.%';

注意: 這裡的主機名 = %,這意味著您可以從任何主機訪問此數據庫伺服器。向使用者授予所有權限是一個很大的風險,這不是最佳實踐。此外,您可以將使用者“chaminda”替換為“bob”。

引用自:https://serverfault.com/questions/186057