您现在的位置是:亿华云 > IT科技类资讯
MySQL修改账号的IP限制条件
亿华云2025-10-02 11:56:40【IT科技类资讯】3人已围观
简介本文转载自微信公众号「DBA闲思杂想录」,作者潇湘隐者。转载本文请联系DBA闲思杂想录公众号。在MySQL中,需要修改MySQL的一个用户的权限,需要限制特定IP地址才能访问,下面结合简单的案例,具体
本文转载自微信公众号「DBA闲思杂想录」,修限制作者潇湘隐者。改账转载本文请联系DBA闲思杂想录公众号。条件
在MySQL中,修限制需要修改MySQL的改账一个用户的权限,需要限制特定IP地址才能访问,条件下面结合简单的修限制案例,站群服务器具体演示一下. 下面测试环境为MySQL 5.6.20. 其它版本应该是改账一样的。如有其它版本与下面测试结果有出入,条件请以实际环境为准。修限制
我们先创建一个测试用户LimitIP,改账只允许192.168段的条件IP地址访问,具体权限如下所示:
mysql> GRANT SELECT ON MyDB.* TO LimitIP@192.168.% IDENTIFIED BY LimitIP; Query OK,修限制 0 rows affected (0.01 sec) mysql> GRANT INSERT ,UPDATE,DELETE ON MyDB.kkk TO LimitIP@192.168.%; Query OK, 0 rows affected (0.00 sec) mysql> mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> mysql> show grants for LimitIP@192.168.%; +----------------------------------------------------------------------------------------------------------------+ | Grants for LimitIP@192.168.% | +----------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO LimitIP@192.168.% IDENTIFIED BY PASSWORD *72DDE03E02CC55A9478A82F3F4EBE7F639249DEC | | GRANT SELECT ON `MyDB`.* TO LimitIP@192.168.% | | GRANT INSERT, UPDATE, DELETE ON `MyDB`.`kkk` TO LimitIP@192.168.% | +----------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec) mysql>假设现在收到一个需求:这个用户只允许这个IP地址192.168.103.17访问,服务器租用于是改账我打算更新mysql.user表,如下所示:
mysql> select user,条件 host from mysql.user where user=LimitIP; +---------+-----------+ | user | host | +---------+-----------+ | LimitIP | 192.168.% | +---------+-----------+ 1 row in set (0.00 sec) mysql> update mysql.user set host=192.168.103.17 where user=LimitIP; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> select user, host from user where user=LimitIP; ERROR 1046 (3D000): No database selected mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select user, host from user where user=LimitIP; +---------+----------------+ | user | host | +---------+----------------+ | LimitIP | 192.168.103.17 | +---------+----------------+ 1 row in set (0.00 sec) mysql> show grants for LimitIP@192.168.103.17; +---------------------------------------------------------------------------------------------------------------------+ | Grants for LimitIP@192.168.103.17 | +---------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO LimitIP@192.168.103.17 IDENTIFIED BY PASSWORD *72DDE03E02CC55A9478A82F3F4EBE7F639249DEC | +---------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>上面测试发现,如果这样只修改mysql.user表, 那么之前的权限没有了,如下所示,如果你查询mysql.db、 mysql.tables_priv 发现Host的云服务器提供商字段值依然为192.168.%
mysql> select * from mysql.db where user=LimitIP\G;很赞哦!(57171)