MySQL设置白名单限制

白名单(Whitelist)是一种机制,用于限制哪些主机可以连接到服务器,而阻止其他主机的访问。通过配置白名单,可以增加服务器的安全性,防止未授权的访问。

在MySQL数据库中直接设置白名单访问(即限制只有特定IP地址或IP地址范围能够访问数据库)并不是MySQL服务器本身直接提供的功能。

MySQL主要关注于数据的存储、检索和管理,而网络层面的访问控制通常由操作系统、防火墙规则或中间件(如数据库代理、负载均衡器等)来管理。

在网络安全领域中,白名单常被认为是一种安全性较高的访问控制策略,因为它仅允许明确列出的主机进行访问,从而减少了潜在的安全漏洞。

在MySQL数据库中,通常修改 MySQL的配置文件或者授权用户访问权限来限制哪些主机可以连接到MySQL服务器,而阻止其他主机的访问。可以理解为MySQL数据库的白名单(Whitelist)机制。

一、修改配置文件

MySQL配置文件 my.ini中的bind-address选项确实可以用于限制MySQL服务器监听的IP地址,但这与设置IP白名单在概念上有所不同。但是它也可以实现限制连接MySQL服务器。

打开配置文件,并找到[mysqld]段落,在该段落中添加如下配置:

# bind-address=ip地址
bind-address=0.0.0.0

bind-address的作用:

bind-address选项用于指定MySQL服务器绑定的IP地址。当MySQL服务器启动时,它会监听这个地址上的端口(默认是3306),以便接受来自客户端的连接请求。

  • 默认值:如果bind-address没有被设置,或者设置为0.0.0.0(对于IPv4)或::(对于IPv6),MySQL服务器将监听所有可用的网络接口上的端口。这意味着来自任何IP地址的客户端都可以尝试连接到MySQL服务器(当然,还需要考虑操作系统的防火墙规则、MySQL的用户权限设置等其他安全因素)。
  • 指定IP地址:如果你将bind-address设置为一个具体的IP地址(如192.168.1.100),MySQL服务器将只监听该IP地址上的端口。这通常用于多网卡或多IP地址的服务器环境,允许你限制MySQL服务器只在特定的网络接口上监听连接请求。

注意:bind-address选项不支持直接设置多个值来监听多个IP地址。如果你希望MySQL服务器能够监听多个IP地址,可以不设置bind-address或设置为0.0.0.0。这也是最常见的做法。

总结: bind-address是MySQL配置文件中用于指定服务器监听IP地址的选项,它可以在一定程度上限制MySQL服务器的网络可见性。然而,要实现真正的IP白名单功能,还需要结合使用操作系统的防火墙规则、MySQL的用户权限设置以及其他安全措施。

二、授权用户访问权限

在MySQL数据库中,使用 mysql库的user表主要用于管理用户权限,但它也可以与host列结合使用来限制访问。

我们可以在创建MySQL用户时指定特定的主机名或IP地址,只有从这些主机或IP地址发起的连接才能成功。

注意:这种方法并不适用于动态IP地址或IP地址范围较大的情况,因为它需要为每个IP地址或IP地址段单独设置用户。切换到 mysql库操作。

1、新建用户

CREATE USER 'charge1'@'localhost'  IDENTIFIED BY 'charge123';
CREATE USER 'charge2'@'192.168.2.243'  IDENTIFIED BY 'charge123';

格式:‘用户名’@‘登录IP或域名’。%表示没有限制,在任何主机都可以登录。比如:‘charge’@‘192.168.0.%’,表示charge这个用户只能在192.168.0 IP段登录。

注意:新建好用户,就可以连接数据库,但是如果想操作数据库,必须进行下面的授权才能操作数据库。

2、给用户授权

# 全局权限:
GRANT ALL PRIVILEGES ON  *.* TO 'charge1'@'localhost';

3、刷新权限

任何权限更改或新用户添加之后,都需要刷新权限,确保更改立即生效。

FLUSH PRIVILEGES;

4、测试

(1)用户连接数据库时,主机必须要和用户的ip一致。

在这里插入图片描述
(2)必须给用户授权之后,才能操作数据库

  • charge1用户可以正常操作。
  • chager2用户不可以正常操作,因为没有授权。

在这里插入图片描述

– 求知若饥,虚心若愚。

相关推荐

  1. 运维系列Nginx:设置黑/名单IP限制

    2024-07-14 08:28:02       60 阅读
  2. 如何设置MySQL的IP名单

    2024-07-14 08:28:02       30 阅读
  3. 【Firewall】服务器访问限制名单

    2024-07-14 08:28:02       28 阅读
  4. 限制用户只能访问特定的域名,域名名单

    2024-07-14 08:28:02       64 阅读
  5. android 13.0 设置上网应用名单(上网app名单)

    2024-07-14 08:28:02       118 阅读
  6. 什么是IP名单?为什么要设置IP名单

    2024-07-14 08:28:02       42 阅读
  7. 在jar里限制指定的包名才可调用(名单)。

    2024-07-14 08:28:02       52 阅读
  8. 服务器名单

    2024-07-14 08:28:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 08:28:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 08:28:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 08:28:02       58 阅读
  4. Python语言-面向对象

    2024-07-14 08:28:02       69 阅读

热门阅读

  1. 12. DDL-数据库的管理

    2024-07-14 08:28:02       23 阅读
  2. 菜鸡的原地踏步史08(◐‿◑)

    2024-07-14 08:28:02       26 阅读
  3. Elasticsearch 角色和权限管理

    2024-07-14 08:28:02       23 阅读
  4. Git配置笔记

    2024-07-14 08:28:02       30 阅读
  5. Docker安装Zookeeper、RocketMQ

    2024-07-14 08:28:02       26 阅读
  6. 计算1的数量

    2024-07-14 08:28:02       28 阅读
  7. 特斯拉的选择:.NET技术栈的工业级魅力

    2024-07-14 08:28:02       20 阅读
  8. 1、ASP安全

    2024-07-14 08:28:02       22 阅读
  9. 数据结构第24节 二分查找

    2024-07-14 08:28:02       19 阅读
  10. QComboBox

    2024-07-14 08:28:02       21 阅读
  11. 【PHP】Symfony框架

    2024-07-14 08:28:02       31 阅读
  12. qt 可以滚动区域实验举例

    2024-07-14 08:28:02       24 阅读