MySQL只答应指定IP访问
1. 利用GRANT下令(保举):```sql
# 语法
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'ip_address' IDENTIFIED BY 'password';
# 示例:答应特定IP访问所有数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY 'your_password';
# 答应特定IP访问特定命据库
GRANT ALL PRIVILEGES ON mydatabase.* TO 'user1'@'192.168.1.100' IDENTIFIED BY 'your_password';
# 革新权限
FLUSH PRIVILEGES;
```
2. 修改用户表(alternative方法):
```sql
# 更新user表
UPDATE mysql.user SET Host='192.168.1.100' WHERE User='username';
FLUSH PRIVILEGES;
```
3. 通过my.cnf配置文件(实用于MySQL 5.7及以上):
```ini
bind-address = 192.168.1.100
```
4. 查看当前用户权限:
```sql
# 查看所有效户权限
SELECT user,host FROM mysql.user;
# 查看特定用户权限
SHOW GRANTS FOR 'username'@'ip_address';
```
5. 删除不须要的访问权限:
```sql
# 删除用户的特定主机访问权限
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'ip_address';
# 删除用户
DROP USER 'username'@'ip_address';
# 革新权限
FLUSH PRIVILEGES;
```
6. 允很多个IP访问:
```sql
# 利用通配符答应整个子网
GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.1.%' IDENTIFIED BY 'password';
# 为多个详细IP创建访问权限
GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'192.168.1.101' IDENTIFIED BY 'password';
```
留意事项:
1. 安全发起:
- 只授予须要的权限
- 利用强密码
- 定期审察访问权限
- 禁用不利用的账户
2. 配置后查抄:
- 确保防火墙设置精确
- 测试指定IP可否访问
- 测试其他IP是否被精确制止
3. 常见错误处理:
- 如果修改后无法访问,查抄:
- 防火墙设置
- MySQL配置文件
- 用户权限表
- 网络连接
4. 最佳实践:
- 记录所有授权的IP
- 定期检察访问日记
- 保持权限最小化
- 定期更新密码
如果须要更严酷的访问控制,还可以考虑:
- 利用SSL/TLS加密连接
- 设置访问时间限定
- 配置失败登录限定
- 启用审计日记
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]