---
title: "RPC 连接认证 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: RPC 连接认证 功能简介 该功能旨在提升 RPC 通信的安全性。开启 RPC 连接认证后，只有通过认证的客户端才能与 OBServer 节点建立 RPC 连接，这一措施能够有效拦截攻击者的恶意 RPC 报文，防止其被 OBServer 节点执行，从而增强了 OceanBase 数据库的安全防护能力。 在升级兼容性方…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.6.0

# RPC 连接认证

更新时间：2026-06-04 16:29:10

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/600.manage/500.security-and-permissions/300.access-control/400.1rpc-connection-authentication.md)  

## 功能简介

该功能旨在提升 RPC 通信的安全性。开启 RPC 连接认证后，只有通过认证的客户端才能与 OBServer 节点建立 RPC 连接，这一措施能够有效拦截攻击者的恶意 RPC 报文，防止其被 OBServer 节点执行，从而增强了 OceanBase 数据库的安全防护能力。

在升级兼容性方面，本方案支持灰度升级流程，可以分段平滑升级，不影响业务进程。在升级过程中，高版本与低版本的 OBServer 节点是相互兼容的。即高版本作为客户端能够连接低版本服务端，同时低版本作为客户端也能够连接高版本服务端。升级后，默认情况下不开启 RPC 连接认证，需要手动开启。

## 限制条件

OceanBase 数据库 V4.2.0 版本的 RPC 连接认证的功能，只有在启用 pkt-nio 网络框架后才能使用，即在开启 RPC 连接认证之前需要保证 `_enable_pkt_nio` 配置项设置为 True。

#### 说明

`_enable_pkt_nio` 用于控制 RPC 网络框架 pkt-nio 的启用和关闭，默认值为 True。

## 使用示例

### 开启认证

目前 OBServer 节点提供基于 SSL 握手的 RPC 连接认证，开启方式如下。

#### 准备 SSL 证书

需要在安装目录下创建 wallet 文件夹并将证书和私钥文件放入该文件夹。证书和私钥文件包括根证书（ca.pem）、证书（server-cert.pem）、私钥（server-key.pem）三个文件。

#### 说明

- 默认安装目录路径：/home/admin/oceanbase。
 - wallet 文件夹及文件夹下的文件名不能更改。
 - 若拥有多台服务器，则每台服务器的安装目录下都需创建 wallet 文件夹，并在该文件夹中放入证书和私钥。
 - 请确保所需的证书文件就绪后再开启认证，否则，会导致认证失败，进而服务不可用。

#### 执行开启命令

以 sys 租户身份登录 OceanBase 数据库，依次执行如下命令。

1. 选择 SSL 协议的版本号。目前支持的 SSL 协议的版本号包括 TLSv1、TLSv1.1、TLSv1.2 和 TLSv1.3，当指定版本号后，支持指定的版本号及其以上的版本协议。有关开启 SSL 连接的更多信息，请参见 [sql_protocol_min_tls_version](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685662)。

   ```sql
   ALTER SYSTEM SET sql_protocol_min_tls_version = 'TLSv1.1';

   ```
 2. 开启 SSL 连接。有关开启 SSL 连接的更多信息，请参见 [ssl_client_authentication](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685644)。

   ```sql
   ALTER SYSTEM SET ssl_client_authentication=True;

   ```
 3. 将客户端的认证方式设置为 `SSL_NO_ENCRYPT`。有关客户端认证的详细信息，请参见 [rpc_client_authentication_method](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685622)。

   ```sql
   ALTER SYSTEM SET rpc_client_authentication_method = 'SSL_NO_ENCRYPT';

   ```
 4. 将服务端的认证方式设置为 `SSL_NO_ENCRYPT`。有关服务端认证的详细信息，请参见 [rpc_server_authentication_method](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685491)。

   ```sql
   ALTER SYSTEM SET rpc_server_authentication_method = 'SSL_NO_ENCRYPT';

   ```

   #### 注意

   虽然将服务端认证方式设置为 `ALL`（即 `ALTER SYSTEM SET rpc_server_authentication_method = 'ALL';` ）也可以开启认证，但这也意味着服务端允许客户端不进行认证直接连接，存在较大的安全风险。因此，在生产环境下不建议采用这种方式。

### 关闭认证

1. 将客户端的认证方式设置为 `NONE`。

   ```sql
   ALTER SYSTEM SET rpc_client_authentication_method = 'NONE';

   ```
 2. 将服务端的认证方式设置为 `NONE` 或 `ALL`。

   ```sql
   ALTER SYSTEM SET rpc_server_authentication_method = 'NONE';
   --或者
   ALTER SYSTEM SET rpc_server_authentication_method = 'ALL';

   ```

## 注意事项

- 如果后续需要更改认证方式，只需重新修改设置。
 - 开启认证后，只对新建的 RPC 连接起作用，已有的连接不受影响。若想要对已连接的客户端进行认证，需要分批重启节点。

 上一篇 下一篇 ![有帮助](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) 咨询热线
