RDS白名單設置適用于所有賬號,無法根據賬號來限制IP地址的訪問。在安全性上有較大缺陷。本文介紹如何指定賬號從特定的IP地址訪問數據庫。
前提條件
已創建高權限賬號,創建方法,請參見創建高權限賬號。
注意事項
通過本文的操作步驟為賬號指定IP地址后,再通過控制臺或者API接口管理該賬號(刪除賬號、修改賬號密碼等)可能會引發故障,建議后期統一使用DMS或者SQL命令管理該賬號。
數據庫中如果存在用戶名相同且綁定的主機IP等價(例如192.168.%和192.168.%.%)的賬號,系統無法保證鑒權順序,可能導致訪問異常。例如數據庫中存在
user@192.168.%
和user@192.168.%.%
兩個賬號,當您使用其中一個賬號登錄時,系統會隨機選擇一個賬號進行鑒權,如果兩個賬號的密碼或權限各不相同,則可能會出現無法登錄、或登錄后權限不一致的問題。因此,應盡量避免上述情況。
使用SQL命令設置賬號從特定IP地址訪問數據庫
通過以下命令創建新賬號并授權管理數據庫,允許賬號通過某IP地址訪問數據庫,此賬號在控制臺上無法查看到所屬數據庫。
創建新賬號test001并授權管理rds001數據庫,允許從42.120.XX.XX訪問數據庫。
CREATE USER `test001`@`42.120.XX.XX`IDENTIFIED BY 'passwd'; GRANT PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'test001'@'42.120.XX.XX'; GRANT ALL PRIVILEGES ON `rds001`.* TO 'test001'@'42.120.XX.XX'; GRANT SELECT ON mysql.* TO 'test001'@'42.120.XX.XX';
說明如果將所有的42.120.XX.XX更改為%,就和通過控制臺創建的賬號相同,也可以在控制臺看見此賬號的所屬數據庫。
如果想要修改IP為42.121.XX.XX,可以使用如下命令:
RENAME USER `test001`@`42.120.XX.XX` TO `test001`@`42.121.XX.XX`;
文檔內容是否對您有幫助?