obproxy的白名单控制问题

obclient [(none)]> select version();
+------------------------------+
| version()                    |
+------------------------------+
| 5.7.25-OceanBase_CE-v4.3.0.1 |
+------------------------------+
obclient [oceanbase]>  select cluster_name, tenant_name, name, value from white_list;
+--------------+-------------+---------+----------------------+
| cluster_name | tenant_name | name    | value                |
+--------------+-------------+---------+----------------------+
| obdemo       | tnt_odc     | ip_list | 127.0.0.1,10.0.0.0/8 |
+--------------+-------------+---------+----------------------+
1 row in set (0.002 sec)


admin@ubuntu:~/obproxy/etc$ ls -ltr
total 104
-rw-rw-r-- 1 admin admin   352 Jun 17  2024 obproxy_config_server_info.json
-rw-rw-r-- 1 admin admin   329 Jun 18  2024 obproxy_rslist_info.json.old
-rw-rw-r-- 1 admin admin   329 Jun 18  2024 obproxy_rslist_info.json
-rw-rw-r-- 1 admin admin  7137 Apr  7 22:10 obproxy_config.bin.old
-rw-r--r-- 1 admin admin 73728 Apr 21 21:00 proxyconfig_v1.db
-rw-rw-r-- 1 admin admin  7137 Apr 21 21:00 obproxy_config.bin

请问obproxy中white_list表的数据是保存在哪里?proxyconfig_v1.db文件中吗?

1 个赞

@论坛小助手

1 个赞

根据文档库中的信息,可以明确以下几点:

  1. white_list 表的数据存储位置

    • 根据文档片段 1 的描述,white_list 表保存了 ODP(OceanBase Database Proxy)的白名单信息。这些信息是通过 SQL 语句插入到表中的,例如:
      replace into white_list(cluster_name, tenant_name, name, value) values('cluster1', 'tenant1', 'ip_list', '127.0.0.1,168.xxx.0.0/16');
      
    • 这表明 white_list 表是一个逻辑上的内部表,数据存储在 OceanBase 数据库中,而不是直接存储在文件系统中。
  2. proxyconfig_v1.db 文件的作用

    • 在您提供的文件列表中,proxyconfig_v1.db 是一个二进制配置文件。根据文档片段 3 和片段 7 的描述,OBProxy 的配置文件(如 obproxy_config.binproxyconfig_v1.db)主要用于存储 OBProxy 的运行时配置信息,例如路由规则、服务端点等。
    • 因此,proxyconfig_v1.db 文件并不是用来存储 white_list 表的数据的,而是 OBProxy 的本地配置文件。
  3. 总结

    • white_list 表的数据存储在 OceanBase 数据库中,属于数据库的内部表。
    • proxyconfig_v1.db 文件是 OBProxy 的本地配置文件,与 white_list 表的数据无关。

如果您需要进一步确认,可以通过以下方式验证:

  • 查询 OceanBase 数据库中的 white_list 表,确认其数据是否动态更新。
  • 检查 proxyconfig_v1.db 文件的内容(如果支持解析),确认其中是否包含白名单信息。

希望以上解答对您有所帮助!如果还有其他疑问,请随时提出。

具体信息可参考以下文档:

  1. 安全和协议
  2. 访问控制
  3. 日志概述
  4. obcdc 黑白名单
  5. 网络安全访问控制
  6. ODP 管理概述
  7. 代理概述
  8. 监控告警
  9. 黑名单机制
2 个赞

:+1: :+1: :+1: :+1:

非要搞那么复杂吗??设置变量ob_tcp_invited_nodes满足不了白名单控制需求??

1 个赞

odp 是个无状态,数据仅仅存储自身的数据。不会存储在oceanbase里面的 。

同时odp没有表的概念,仅仅是方便使用而已。

replace into white_list(cluster_name, tenant_name, name, value) values(‘obcp’, ‘obcp’, ‘ip_list’, ‘127.0.0.12’);
执行上面的语句,发现 proxyconfig_v1.db 文件的时间会发生改变

所以可以断定大概率存储在这里德

1 个赞

使用了 odp 后,最前端的就是 odp了 。 oceanbase的白名单似乎 用来限制 odp的链接了。

white_list属于ODP层面的管控,变量ob_tcp_invited_nodes就是在没有ODP的场景下的最后一道防线?