---
title: OBServer IP 匹配实现存在缺陷，导致非预期 IP 也可通过匹配-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OBServer IP 匹配实现存在缺陷，导致非预期 IP 也可通过匹配相关的常见问题和使用技巧，帮助您快速解决OBServer IP 匹配实现存在缺陷，导致非预期 IP 也可通过匹配的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OBServer IP 匹配实现存在缺陷，导致非预期 IP 也可通过匹配

更新时间：2026-06-03 03:01

适用版本： V2.2.x、V3.1.x、V3.2.x、V4.1.x、V4.2.x 内容类型：Troubleshoot  

## 问题现象

OBServer 内核内部实现的 IP 匹配函数 `ObHostnameStuct::is_ip_match` 实现存在缺陷，导致有使用了 IP 匹配功能的模块工作不正常，可能会有非预期的 IP 成功匹配，特别的，当用户使用旧版本时，可能因为运维错误的设置使用了某些错误的 IP 可以通过匹配，但是在升级到修复此问题的版本后，就会出现错误IP无法通过校验的情况。

1. 租户白名单，参见：[ob_tcp_invited_nodes](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000751842)。

   在设置了租户的 IP 白名单 `ob_tcp_invited_nodes` 后，可登录的 IP 不符合预期，会有非白名单内的IP也能通过认证的情况。

   例如，当白名单 `ob_tcp_invited_nodes = ''192.168.0.155'` 时，`192.168.0.1` 也能通过白名单校验。
 2. create user 指定 hostname 参见：[创建用户](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000821396)。

   在创建用户时候指定了用户所在的主机 IP，但可登陆的 IP 不符合预期，可能会有非匹配的 IP 也能通过该用户连接。

   例如，通过 SQL 语句 `create user user1@192.168.0.155 identified by '******';` 创建用户 tenant1 并指定用户的 `IP=192.168.0.155`，但 IP 为 `192.168.0.1` 的主机也可通过此用户进行连接。

## 问题原因

在 OceanBase 数据库的版本中，ObAddr 最大 IP 或者说最大子网掩码被错误的定义为 `1.1.1.1` 而不是 `255.255.255.255`，这样意味着两个IP的四个字节只用奇偶性相同即可匹配的上。

由于在代码实现上，单 IP 会与最大子网掩码相与进行计算，而最大子网掩码的实现错误导致结果也会出现错误，会出现错误的匹配结果，因此 **IP 列表匹配是不准确的**。**（只需要客户 IP 和名单IP的四个字节均奇偶相同即可匹配上）**

对于使用了 `'%'` 或 `'_'` 设置的模糊匹配 IP，在进行模糊匹配校验失败后，仍然会将该模糊匹配表达式中强转成 `'0.0.0.0'` 再进行单 IP 匹配，因此**模糊匹配是不准确的**。**（只需要客户IP的四个字节均为偶数即可匹配上）**

掩码匹配使用的是用户设置的子网掩码，并不会使用最大子网掩码 `255.255.255.255`，因此**掩码匹配是符合预期的**。

## 问题的风险及影响

非白名单IP可能也能成功登录，存在安全风险。

## 影响租户

影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。

## 影响版本

OceanBase 数据库企业版 V2.2.77 GA（oceanbase-2.2.77-20210508211731）及之后版本、V3.1.2 GA（oceanbase-3.1.2-20210618150922）及之后版本、V3.2.2 GA（oceanbase-3.2.2-20211130225726）及之后版本、V3.2.3 GA（oceanbase-3.2.3.0-20220419）及之后版本、V3.2.4 GA（oceanbase-3.2.4.0-100000072022102819）及之后版本、V4.1.0 GA（oceanbase-4.1.0.0-100001122023040322）及之后版本、V4.2.0 GA（oceanbase-4.2.0.0-100010082023083014）及之后版本、V4.2.1 GA（oceanbase-4.2.1.0-100000182023092722）及之后版本、V4.2.2 GA（oceanbase-4.2.2.0-100000082024011317）及之后版本。

## 解决方法

升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V2.2.77 BP19（oceanbase-2.2.77-119000122024060513）、V3.2.3 BP11（oceanbase-3.2.3.3-111000032024070822）、V3.2.4 BP7（oceanbase-3.2.4.7-107000012023113010）、V4.2.1 BP2（oceanbase-4.2.1.2-102010012023120119）、V4.2.2 BP1（oceanbase-4.2.2.1-101000012024030619）。

## 规避方式

只使用掩码匹配规则来设置白名单：

例如，`192.168.0.1` 可以使用 `192.168.0.1/32` 替代；`192.168.0.%` 可以使用 `192.168.0.0/24` 替代。

Previous

[网络线程关键打印汇总](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000707678)

Next

[Location cache 刷新机制](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000254502) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
