Networking
MySQL:創建一個可以從多個主機連接的使用者
我正在使用 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”。