23 我有许多通过VPN连接到MySQL的用户,因此我们有类似的授予方式grant select on foo.* to user@ipaddress1。 本周,VPN上使用的IP更改为address2,因此user@ipaddress1授予不再可用。 在MySQL中处理更新用户并授予信息以反映此更改的最佳方法是什么? 请注意,授予是一个严重的混乱,因为某些用户被排除在特定表的特定列中,因此我们必须围绕被排除对象进行授予。 mysql — j source
42 显然,正确的方法是: RENAME USER user@ipaddress1 TO user@ipaddress2; http://dev.mysql.com/doc/refman/5.0/en/rename-user.html 这将处理所有赠款。 — j source 适用于MySQL版本8 — Manuel Jordan
3 只需更新用户表中的主机字段即可: update mysql.users set Host = newIP where Host = oldIP; flush privileges; — d source 尝试过:如果有赠款,它将不起作用。 — cjc 2011年 哦...打个好电话。我的错。 — jdw 2011年 这应该可以正常工作,您只需要flush privileges在手动操作任何特权表之后执行该语句即可。 — Zoredache
2 如果您有一个专用于VPN用户的子网,则以下语法可以很好地工作。 GRANT ALL ... user_name@'192.168.1.%' — 蒂姆·布里格姆(Tim Brigham) source 这对于使用特定IP的现有用户无济于事。即使下一次使用范围,我们仍然必须重做所有赠款。 — cjc 您可以使用相同的语法更新现有用户。 — 蒂姆·百翰