You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何SSH访问CockroachDB需CA证书与账号密码,Python仅需账号密码?

连接CockroachDB时官方客户端与Python客户端的差异原因

核心差异源于两种客户端默认的SSL验证策略不同,结合CockroachDB的认证配置导致:

  • 官方CockroachDB命令行客户端(cockroach sql)的默认规则
    官方客户端默认启用sslmode=verify-full模式,这要求客户端必须完成两项验证:一是用CA证书确认服务器SSL证书由可信机构签发,二是验证证书中的主机名与连接地址匹配。因此必须同时提供CA证书和账号密码才能建立连接。

  • sqlalchemy-cockroachdb 1.4.4的默认规则
    你使用的这个版本的SQLAlchemy适配器,默认采用sslmode=require模式——只要求连接通过SSL加密,但不验证服务器证书的合法性,不需要CA证书做身份校验。只要提供正确的账号密码,就能完成身份认证并建立加密连接。如果你的连接URL没有显式指定sslrootcert或更高严格度的sslmode(比如verify-ca/verify-full),就会沿用这个默认逻辑。

  • 集群配置的潜在影响
    如果你的CockroachDB集群设置了sql.auth.mode=password(仅允许密码认证),而非默认的password,cert(同时支持证书和密码认证),会进一步弱化对CA证书的要求,让仅密码连接的行为更直接。

验证方法

你可以通过以下操作验证上述结论:

  1. 修改Python连接URL,添加sslmode=verify-full&sslrootcert=/path/to/ca.crt,此时Python连接会强制要求CA证书,否则报错
  2. 使用官方客户端时加上--sslmode=require参数,此时无需CA证书,仅用密码即可连接

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:25:16