【 使用环境 】测试环境
【 使用版本 】v3、v4
【问题描述】登录集群sys租户后,如何查看所有租户所设置的白名单呢
1 个赞
根据文档库中的信息,您可以按照以下步骤查询所有租户下的白名单:
1. 登录 sys 租户
首先,使用 root 用户通过 OBClient 登录到 sys 租户。例如:
obclient -h<ODP_IP> -uroot@sys#<cluster_name> -P2883 -p
-
<ODP_IP>是 OBProxy 的 IP 地址。 -
<cluster_name>是集群名称。
参考文档:《通过 OBClient 连接 OceanBase 租户》前提条件
2. 查询所有租户信息
登录 sys 租户后,可以使用 obshell 工具查询集群中所有的租户信息。执行以下命令:
${home_path}/bin/obshell tenant show
-
${home_path}是 OceanBase 数据库的安装目录。 - 如果需要查看详细信息,可以加上
-d参数:
${home_path}/bin/obshell tenant show -d
参考文档:《obshell 租户命令组》obshell tenant show
3. 查看每个租户的白名单
对于每个租户,切换到该租户并查询其白名单配置。例如,假设租户名为 tenant1,执行以下步骤:
(1) 切换到目标租户
obclient -h<ODP_IP> -uroot@tenant1#<cluster_name> -P2883 -p
(2) 查询白名单
在目标租户中执行以下 SQL 命令:
SHOW VARIABLES LIKE 'ob_tcp_invited_nodes';
这将返回该租户的白名单设置。例如:
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| ob_tcp_invited_nodes | % |
+----------------------+-------+
参考文档:《查看和设置租户白名单》查看租户白名单
4. 自动化脚本(可选)
如果需要批量查询所有租户的白名单,可以编写一个简单的脚本,结合 obshell 和 obclient 工具实现自动化操作。
示例脚本(伪代码):
#!/bin/bash
# 获取所有租户名称
tenants=$(${home_path}/bin/obshell tenant show | awk '{print $1}')
# 遍历每个租户
for tenant in ${tenants}; do
echo "Tenant: ${tenant}"
# 查询白名单
obclient -h<ODP_IP> -uroot@${tenant}#<cluster_name> -P2883 -e "SHOW VARIABLES LIKE 'ob_tcp_invited_nodes';"
done
注意事项
-
权限要求:确保当前用户具有足够的权限访问
sys租户和其他租户。 -
白名单默认值:如果返回值为
%,表示允许所有客户端 IP 访问该租户。 - 修改白名单不影响现有会话:修改白名单设置不会影响已创建的会话。
参考文档:《网络安全访问控制》
如果您需要进一步的帮助,请提供更多具体信息或联系 OceanBase 的人工答疑团队。
检索到的文档如下:
只能通过切换租户去查询吗?不可以通过sys租户来获取所有租户下设置的白名单吗
sys租户下查询select * from __all_virtual_sys_variable where name=‘ob_tcp_invited_nodes’
4X 查询 CDB_OB_SYS_VARIABLES 这个视图