在MySQL中创建只读用户并限制访问服务器

要在MySQL数据库中创建一个只读用户mes_read,并只允许特定服务器使用该用户连接,你需要执行以下步骤:

1. 使用管理员账户登录MySQL

mysql -u root -p

2. 创建只读用户并设置密码

CREATE USER 'mes_read'@'特定服务器IP' IDENTIFIED BY '强密码';

特定服务器IP替换为允许连接的服务器IP地址,强密码替换为你想要设置的密码。

3. 授予只读权限

授予对特定数据库的只读权限(假设数据库名为mes_db):

GRANT SELECT ON mes_db.* TO 'mes_read'@'特定服务器IP';

如果要授予对所有数据库的只读权限:

GRANT SELECT ON *.* TO 'mes_read'@'特定服务器IP';

4. 刷新权限

FLUSH PRIVILEGES;

5. 验证用户权限

SHOW GRANTS FOR 'mes_read'@'特定服务器IP';

6. 限制只允许特定IP连接

如果你需要限制多个特定服务器IP,可以创建多个用户条目:

CREATE USER 'mes_read'@'192.168.1.100' IDENTIFIED BY '密码';
CREATE USER 'mes_read'@'192.168.1.101' IDENTIFIED BY '密码';
GRANT SELECT ON mes_db.* TO 'mes_read'@'192.168.1.100';
GRANT SELECT ON mes_db.* TO 'mes_read'@'192.168.1.101';
FLUSH PRIVILEGES;

7. 使用通配符限制IP范围(可选)

如果需要允许一个IP段,可以使用通配符:

CREATE USER 'mes_read'@'192.168.1.%' IDENTIFIED BY '密码';
GRANT SELECT ON mes_db.* TO 'mes_read'@'192.168.1.%';
FLUSH PRIVILEGES;

注意事项

  1. 确保MySQL服务器的防火墙允许来自特定服务器的连接
  2. 考虑使用SSH隧道或VPN进行更安全的连接
  3. 定期审查和更新密码
  4. 对于生产环境,考虑使用更复杂的密码策略