授予所有子网上的机器mysql访问权限

3
我有一个运行在Windows上的MySQL实例(和架构),我可以通过基于本地主机的连接字符串访问它。
现在,我想从同一子网上的另一台计算机访问此数据库。
如果可能的话,我想使用单个用户,但允许它从同一子网上的任何计算机访问。
如何为此设置安全性? (我已经打开了相关的防火墙端口)
谢谢, Eyal
2个回答

19

你可以这样做:

GRANT ALL PRIVILEGES ON mydb TO 'username'@'192.168.1.0/255.255.255.0';

根据需要修改子网和IP地址


我想在 root 上这样做可能不是一个好主意。在执行授权语句之前,我需要以某种方式创建“用户名”吗?如果需要,我该如何为用户名设置密码? - epeleg
不适用于我的Percona XtraDB Cluster 5.7 :-( - zx1986
这可能是由于他们设置中的某些问题,您应该检查他们的文档。 - BugFinder
对我而言:对于mysql 8,192.168.1.0/24可行,但对于mysql 5.7,仅192.168.1.0/255.255.255.0可行。 - user989840

3

您还可以使用通配符,而不是掩码。

您可以在主机名中指定通配符。例如, user_name@'%.example.com' 适用于 example.com 域中任何主机的 user_name, user_name@'192.168.1.%' 适用于 192.168.1 类 C 子网中任何主机的 user_name。

请参阅 GRANT 文档中的账户名称和密码部分


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接