CloudBeaver 26.2.3 配置参数详解
CloudBeaver 26.2.3 配置参数详解:cloudbeaver.conf 静态层/环境变量/运行时配置三层体系与固化机制,server/sm/database/app/resourceQuotas/disabledDrivers 全参数默认值与逐项实测,口令策略不拦管理 API 的实测发现,以及改值-重建-验证全流程与生产配置模板。
CloudBeaver 26.2.3 配置参数详解
目标:把 CloudBeaver Community 26.2.3 的配置拆成「静态配置文件」「环境变量」「运行时配置」三层,逐项给出默认值、作用、修改方式与验证命令。文中所有回显均为本机实测(CloudBeaver Community 26.2.3.202610190842、Ubuntu 24.04.5、Docker 29.9.2、Compose v5.6.1),取材日期 2026-10-25;部署流程见《CloudBeaver 26.2.3 Docker Compose 部署指南》,产品定位见《CloudBeaver 26.2.3 介绍与选型指南》。
一、环境信息
- 应用版本:CloudBeaver Community
26.2.3(构建号26.2.3.202610190842),内嵌 Jetty12.1.11、OpenJDK25.0.4.1 - 对外端口:8978
- 部署形态:Docker Compose(编排含 PostgreSQL 16 / MariaDB 11.8 两个演示库),部署目录
/opt/cloudbeaver - 配置入口:发行内
/opt/cloudbeaver/conf/cloudbeaver.conf(静态层)、编排environment:(环境变量层)、工作区workspace/.data/.cloudbeaver.runtime.conf(运行时层) - 演示账号:管理员
root/q1w2e3r4;普通用户alice/q1w2e3r4 - 实测基线:
JAVA_OPTS=-Xms256m -Xmx512m,其余全默认
本文每个重点参数都按「改值 → 重建服务 → 用接口回显验证」的方式实测,结果汇总在第十一章。
二、前置条件
按部署篇完成安装并能登录管理员账号即可。本文所有在线验证都通过 GraphQL 端点 /api/gql 完成,先取管理员会话(返回的 cb-session-id Cookie 存入 ck.txt 供后续命令复用):
curl -s -c ck.txt -H 'Content-Type: application/json' http://127.0.0.1:8978/api/gql \
-d '{"query":"query { authLogin(provider: \"local\", credentials: { user: \"root\", password: \"q1w2e3r4\" }) { userTokens { userId } } }"}'
实测回显:
{"data":{"authLogin":{"userTokens":[{"userId":"root"}]}}}
查看生效配置的统一入口是 serverConfig 查询:
curl -s -b ck.txt -H 'Content-Type: application/json' http://127.0.0.1:8978/api/gql \
-d '{"query":"query { serverConfig { name version sessionExpireTime anonymousAccessEnabled bindSessionToIp enabledAuthProviders disabledDrivers resourceQuotas passwordPolicyConfiguration { minLength minNumberCount minSymbolCount requireMixedCase } } }"}'
三、配置体系总览
CloudBeaver 的配置分三层,职责与优先级不同,混用会导致「改了没生效」:
| 层 | 位置 | 管什么 | 优先级 | 生效时机 |
|---|---|---|---|---|
| 静态配置 | /opt/cloudbeaver/conf/cloudbeaver.conf | 全部参数的默认值模板 | 低 | 进程启动时读取 |
| 环境变量 | 编排 environment: 段 | 穿透两层的 ${VAR:默认} 占位 | 中 | 启动时解析占位符 |
| 运行时配置 | workspace/.data/.cloudbeaver.runtime.conf | 初始化向导与管理界面写入的值 | 高 | 启动时覆盖静态层 |
两个关键机制:
- 占位符语法:两层文件都是 JSONC(允许注释的 JSON),值形如
"${CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD:1800000}"——环境变量存在就用环境变量,否则用冒号后的默认值。这就是「环境变量层」的实现方式。 - 运行时层固化:初始化向导或管理界面保存配置时,服务会把当前生效值写进运行时层的占位符默认值。实测把环境变量
CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD设为3600000后,运行时配置里该键的模板默认值从出厂的604800000(7 天)被改写为3600000——之后即使删掉环境变量,生效值仍是固化后的 3600000,而不是出厂默认。这是「删了变量配置却没还原」的常见根因。
四、参数查看与修改方式
4.1 查看:直接读文件
静态层完整内容(发行内 /opt/cloudbeaver/conf/cloudbeaver.conf,逐行照抄):
{
server: {
serverPort: "${CLOUDBEAVER_WEB_SERVER_PORT:8978}",
forceHttps: "${CLOUDBEAVER_FORCE_HTTPS:false}",
contentRoot: "${CLOUDBEAVER_CONTENT_ROOT:web}",
driversLocation: "${CLOUDBEAVER_DRIVERS_LOCATION:drivers}",
sslConfigurationPath: "${CLOUDBEAVER_SSL_CONF_PATH:workspace/.data/ssl-config.xml}",
rootURI: "${CLOUDBEAVER_ROOT_URI:/}",
serviceURI: "${CLOUDBEAVER_SERVICE_URI:/api/}",
supportedHosts: [
],
productSettings: {
core.theming.theme: "${CLOUDBEAVER_CORE_THEMING_THEME:system}",
core.localization.language: "${CLOUDBEAVER_CORE_LOCALIZATION:en}",
plugin.sql-editor.autoSave: "${CLOUDBEAVER_SQL_EDITOR_AUTOSAVE:true}",
plugin.sql-editor.disabled: "${CLOUDBEAVER_SQL_EDITOR_DISABLED:false}",
plugin.sql-editor.maxFileSize: "${CLOUDBEAVER_SQL_EDITOR_MAX_FILE_SIZE:10240}",
plugin.log-viewer.disabled: "${CLOUDBEAVER_LOG_VIEWER_DISABLED:false}",
plugin.log-viewer.logBatchSize: "${CLOUDBEAVER_LOG_VIEWER_LOG_BATCH_SIZE:1000}",
plugin.log-viewer.maxLogRecords: "${CLOUDBEAVER_LOG_VIEWER_MAX_LOG_RECORDS:2000}",
sql.proposals.insert.table.alias: "${CLOUDBEAVER_SQL_PROPOSALS_INSERT_TABLE_ALIAS:PLAIN}",
SQLEditor.ContentAssistant.experimental.mode: "${CLOUDBEAVER_SQL_EDITOR_CONTENT_ASSISTANT_EXPERIMENTAL_MODE:NEW}"
},
expireSessionAfterPeriod: "${CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD:1800000}",
bindSessionToIp: "${CLOUDBEAVER_BIND_SESSION_TO_IP:disable}",
develMode: "${CLOUDBEAVER_DEVEL_MODE:false}",
sm: {
enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}",
maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}",
minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}",
blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}",
passwordPolicy: {
minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}",
requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:true}",
minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:1}",
minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}"
}
},
database: {
driver: "${CLOUDBEAVER_DB_DRIVER:h2_embedded_v2}",
url: "${CLOUDBEAVER_DB_URL:jdbc:h2:${workspace}/.data/cb.h2v2.dat}",
schema: "${CLOUDBEAVER_DB_SCHEMA:''}",
user: "${CLOUDBEAVER_DB_USER:''}",
password: "${CLOUDBEAVER_DB_PASSWORD:''}",
initialDataConfiguration: "${CLOUDBEAVER_DB_INITIAL_DATA:conf/initial-data.conf}",
pool: {
minIdleConnections: "${CLOUDBEAVER_DB_MIN_IDLE_CONNECTIONS:4}",
maxIdleConnections: "${CLOUDBEAVER_DB_MAX_IDLE_CONNECTIONS:10}",
maxConnections: "${CLOUDBEAVER_DB_MAX_CONNECTIONS:100}",
validationQuery: "${CLOUDBEAVER_DB_VALIDATION_QUERY:SELECT 1}"
},
backupEnabled: "${CLOUDBEAVER_DB_BACKUP_ENABLED:true}"
}
},
app: {
anonymousAccessEnabled: "${CLOUDBEAVER_APP_ANONYMOUS_ACCESS_ENABLED:true}",
anonymousUserRole: "${CLOUDBEAVER_APP_ANONYMOUS_USER_ROLE:user}",
defaultUserTeam: "${CLOUDBEAVER_APP_DEFAULT_USER_TEAM:user}",
grantConnectionsAccessToAnonymousTeam: "${CLOUDBEAVER_APP_GRANT_CONNECTIONS_ACCESS_TO_ANONYMOUS_TEAM:false}",
supportsCustomConnections: "${CLOUDBEAVER_APP_SUPPORTS_CUSTOM_CONNECTIONS:false}",
showReadOnlyConnectionInfo: "${CLOUDBEAVER_APP_READ_ONLY_CONNECTION_INFO:false}",
systemVariablesResolvingEnabled: "${CLOUDBEAVER_SYSTEM_VARIABLES_RESOLVING_ENABLED:false}",
forwardProxy: "${CLOUDBEAVER_APP_FORWARD_PROXY:false}",
publicCredentialsSaveEnabled: "${CLOUDBEAVER_APP_PUBLIC_CREDENTIALS_SAVE_ENABLED:true}",
adminCredentialsSaveEnabled: "${CLOUDBEAVER_APP_ADMIN_CREDENTIALS_SAVE_ENABLED:true}",
resourceManagerEnabled: "${CLOUDBEAVER_APP_RESOURCE_MANAGER_ENABLED:true}",
dbUserPasswordChangeEnabled: "${CLOUDBEAVER_APP_DB_USER_PASSWORD_CHANGE_ENABLED:false}",
resourceQuotas: {
resourceManagerFileSizeLimit: "${CLOUDBEAVER_RESOURCE_QUOTA_RESOURCE_MANAGER_FILE_SIZE_LIMIT:500000}",
sqlMaxRunningQueries: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_MAX_RUNNING_QUERIES:100}",
sqlResultSetRowsLimit: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_RESULT_SET_ROWS_LIMIT:100000}",
sqlTextPreviewMaxLength: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_TEXT_PREVIEW_MAX_LENGTH:4096}",
sqlBinaryPreviewMaxLength: "${CLOUDBEAVER_RESOURCE_QUOTA_SQL_BINARY_PREVIEW_MAX_LENGTH:261120}"
},
enabledAuthProviders: [
"local"
],
disabledBetaFeatures: [
]
}
}
运行时层在工作区里,初始化后才有,关键节选(实测):
{
"server": {
"serverName": "CloudBeaver Lab",
"expireSessionAfterPeriod": "${CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD:3600000}",
"database": {
"url": "${CLOUDBEAVER_DB_URL:jdbc:h2:/opt/cloudbeaver/workspace/.data/cb.h2v2.dat}",
"user": "${CLOUDBEAVER_DB_USER:cb-data}",
"password": "${CLOUDBEAVER_DB_PASSWORD:NJY99CKS}"
}
},
"app": {
"enabledFeatures": ["ssh", "ai"],
"disabledDrivers": ["duckdb:duckdb_jdbc", "h2:h2_embedded", "h2:h2_embedded_v2", "h2:h2_embedded_v3", "sqlite:sqlite_jdbc"]
}
}
注意运行时层自动生成了内嵌 H2 库的账号口令(cb-data / 随机串,每个工作区不同);disabledDrivers 的实际生效清单以运行时层为准,与静态层默认不同(见第十章)。
4.2 修改:三种途径
- 环境变量(推荐):在编排
environment:段加同名变量,docker compose up -d重建生效。只restart不会应用新的变量定义。 - 管理界面:设置 → 管理 → Server configuration,保存后写入运行时层并立即或重启后生效(视参数而定)。
- 直改配置文件:编辑两层文件之一后重启。改静态层建议挂载自己的
cloudbeaver.conf纳入版本管理(挂载方法见部署篇第七章)。
4.3 验证:serverConfig 回显
改完用第二章的 serverConfig 查询核对。本文基线(已含第十一章的三处环境变量实测值)实测回显:
{
"data": {
"serverConfig": {
"name": "CloudBeaver Lab",
"version": "26.2.3.202610190842",
"sessionExpireTime": 3600000,
"anonymousAccessEnabled": true,
"bindSessionToIp": "disable",
"enabledAuthProviders": ["local"],
"disabledDrivers": ["duckdb:duckdb_jdbc", "h2:h2_embedded", "h2:h2_embedded_v2", "h2:h2_embedded_v3", "sqlite:sqlite_jdbc"],
"resourceQuotas": {
"resourceManagerFileSizeLimit": "500000",
"sqlMaxRunningQueries": "100",
"sqlResultSetRowsLimit": "50000",
"sqlTextPreviewMaxLength": "4096",
"sqlBinaryPreviewMaxLength": "261120"
},
"passwordPolicyConfiguration": {
"minLength": 10,
"minNumberCount": 1,
"minSymbolCount": 0,
"requireMixedCase": false
}
}
}
}
五、服务器与网络参数
| 参数(环境变量) | 默认 | 说明 |
|---|---|---|
serverPort(CLOUDBEAVER_WEB_SERVER_PORT) | 8978 | HTTP 监听端口 |
forceHttps(CLOUDBEAVER_FORCE_HTTPS) | false | 强制 HTTPS:HTTP 跳转 443、Cookie 加 Secure;⚠️ 前置代理 TLS 就绪前开启会让服务不可达 |
rootURI / serviceURI | / / /api/ | Web 根路径与 API 前缀 |
contentRoot / driversLocation | web / drivers | 前端静态资源与驱动库目录 |
supportedHosts | [] | 允许访问的 Host 白名单,空为不限制 |
expireSessionAfterPeriod(CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD) | 静态层 1800000(30 分钟);运行时模板出厂 604800000(7 天) | 会话空闲过期毫秒数,实际生效以运行时层为准 |
bindSessionToIp | disable | 会话绑定客户端 IP;开启动态 IP 环境会频繁掉线 |
develMode | false | 开发模式,生产保持关闭 |
productSettings 一组控制前端行为:主题(system)、语言(en)、SQL 编辑器自动保存(true)与脚本大小上限(10240 KB)、日志查看器批量(1000)与最大记录(2000)等,均为环境变量可覆盖。
六、安全与会话参数
6.1 防爆破(server.sm)
| 参数 | 默认 | 说明 |
|---|---|---|
enableBruteForceProtection | true | 登录防爆破总开关 |
maxFailedLogin | 10 | 连续失败次数上限 |
minimumLoginTimeout | 1 | 登录尝试最小间隔(秒) |
blockLoginPeriod | 300 | 超限后锁定秒数 |
6.2 口令策略(server.sm.passwordPolicy)
| 参数 | 默认 | 本文实测值 | 说明 |
|---|---|---|---|
minLength | 8 | 10 | 最小长度 |
requireMixedCase | true | false | 要求大小写混合 |
minNumberCount | 1 | 1 | 最少数字个数 |
minSymbolCount | 0 | 0 | 最少符号个数 |
在线回显入口是 serverConfig.passwordPolicyConfiguration(回显见 4.3)。
⚠️ 实测重要发现:口令策略只在浏览器界面的改密流程强制,管理 API 路径不校验。实测用管理员会话把
alice的口令改成 3 位的abc(低于minLength: 10、无数字),接口直接返回成功,且alice能用abc正常登录:{"data":{"setUserCredentials":true}}{"data":{"authLogin":{"userTokens":[{"userId":"alice"}]}}}结论:策略参数约束的是自助改密,不能替代管理员层面的口令审计;通过 API 批量建账号时必须自行保证口令强度(实测后已把
alice恢复为q1w2e3r4)。
6.3 认证与访问
| 参数 | 默认 | 说明 |
|---|---|---|
enabledAuthProviders | ["local"] | 启用的认证提供方;CE 只有 local |
anonymousAccessEnabled | true | 允许匿名访问;团队服务器建议设 CLOUDBEAVER_APP_ANONYMOUS_ACCESS_ENABLED=false |
anonymousUserRole / defaultUserTeam | user / user | 匿名用户与新用户的默认角色 |
grantConnectionsAccessToAnonymousTeam | false | 是否把连接授权给匿名组 |
七、内部数据库与连接池参数
CloudBeaver 把用户、口令哈希、连接定义、凭据、权限存在内部库。CE 默认且仅随包携带 H2(h2_embedded_v2,文件即工作区 .data/cb.h2v2.dat);PostgreSQL / MariaDB / Oracle / SQL Server 作为内部库属商业版能力。
| 参数 | 默认 | 说明 |
|---|---|---|
database.driver | h2_embedded_v2 | 内部库驱动 |
database.url | jdbc:h2:${workspace}/.data/cb.h2v2.dat | 库文件位置,${workspace} 即工作区 |
database.user / database.password | 空(初始化时随机生成并固化进运行时层) | 内嵌库账号口令 |
database.initialDataConfiguration | conf/initial-data.conf | 初始化数据,内置 admin(全权限)与 user 两个角色——这也是管理员账号不能取名 admin 的原因 |
database.pool.minIdleConnections / maxIdleConnections / maxConnections | 4 / 10 / 100 | 内部库连接池 |
database.pool.validationQuery | SELECT 1 | 连接有效性探测 |
database.backupEnabled | true | 升级前自动备份内部库 |
⚠️ 注意:若手工把内部库改成外部 PostgreSQL,CE 发行内没有
pg_dump,自动备份会失败并导致服务无法启动;此时必须设CLOUDBEAVER_DB_BACKUP_ENABLED=false并自行备份(官方 Wiki《Server Database》)。
八、应用行为参数(app 段)
| 参数 | 默认 | 说明 |
|---|---|---|
supportsCustomConnections | false | 是否允许用户自建连接;CE 默认关,连接由管理员下发 |
publicCredentialsSaveEnabled / adminCredentialsSaveEnabled | true / true | 普通用户/管理员能否保存数据库凭据 |
resourceManagerEnabled | true | 资源管理器(脚本文件)开关 |
dbUserPasswordChangeEnabled | false | 是否允许改数据库侧口令 |
forwardProxy | false | 位于反代之后时设 true,审计日志才能记录真实客户端 IP |
showReadOnlyConnectionInfo | false | 连接信息只读展示 |
systemVariablesResolvingEnabled | false | 是否解析系统变量 |
disabledBetaFeatures | [] | 关闭指定 Beta 功能 |
运行时层还有一份 enabledFeatures: ["ssh", "ai"],控制 SSH 隧道与 AI 助手两大功能块。
九、资源配额参数(app.resourceQuotas)
| 参数 | 默认 | 说明 |
|---|---|---|
resourceManagerFileSizeLimit | 500000 | 资源管理器单文件大小上限(KB) |
sqlMaxRunningQueries | 100 | 并发执行查询数上限 |
sqlResultSetRowsLimit | 100000 | 单条查询结果集行数上限(本文实测改为 50000) |
sqlTextPreviewMaxLength | 4096 | 文本字段预览长度 |
sqlBinaryPreviewMaxLength | 261120 | 二进制字段预览长度 |
这组参数是「浏览器端防误伤」的最后防线:结果集行数上限防止一条 SELECT * 把大表拖进浏览器。注意 serverConfig 回显中配额值是字符串类型。
十、驱动管理参数
CE 26.2.3 预下载 18 个驱动(实测 driverList 查询):
| 驱动 ID | 名称 | 默认状态 |
|---|---|---|
postgresql:postgres-jdbc | PostgreSQL | 可用 |
mysql:mysql8 / mysql:mariaDB | MySQL / MariaDB | 可用 |
oracle:oracle_thin | Oracle | 可用 |
sqlserver:microsoft | SQL Server | 可用 |
clickhouse:com_clickhouse | ClickHouse | 可用 |
db2:db2 / db2_i:db2_iseries | Db2 LUW / Db2 for IBM i | 可用 |
jaybird:jaybird | Firebird | 可用 |
generic:trino_jdbc / generic:kyuubi_hive | Trino / Apache Kyuubi | 可用 |
databend:databend_jdbc / sqlite:libsql_jdbc | Databend / LibSQL | 可用 |
duckdb:duckdb_jdbc | DuckDB | 禁用 |
h2:h2_embedded / h2:h2_embedded_v2 / h2:h2_embedded_v3 | H2 系列 | 禁用 |
sqlite:sqlite_jdbc | SQLite | 禁用 |
静态层默认 disabledDrivers 为 [h2:h2_embedded, h2:h2_embedded_v2, clickhouse:yandex_clickhouse, generic:duckdb_jdbc, sqlite:sqlite_jdbc],而运行时层实际生效清单为 [duckdb:duckdb_jdbc, h2:h2_embedded, h2:h2_embedded_v2, h2:h2_embedded_v3, sqlite:sqlite_jdbc](驱动 ID 带版本前缀格式不同,且多了 h2_embedded_v3、少了旧版 ClickHouse)——以运行时层/在线回显为准。
禁用语义实测(驱动 sqlite:sqlite_jdbc):
- 建连接不拦:
createConnection正常返回连接对象; - 执行期才拦:
initConnection报错——
{
"errors": [
{
"message": "Error connecting to database:\nDriver disabled",
"path": ["initConnection"],
"extensions": {"exceptionClass": "org.jkiss.dbeaver.DBException", "classification": "DataFetchingException"}
}
],
"data": null
}
启用被禁驱动的方式:管理界面 → Server configuration → Drivers 勾选,或从运行时层的 disabledDrivers 数组移除后重启。
十一、环境变量实测:改值 → 重建 → 验证
以三个参数为例走完整流程。在编排 environment: 段追加:
CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE: "false"
CLOUDBEAVER_POLICY_MIN_LENGTH: "10"
CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD: "3600000"
CLOUDBEAVER_RESOURCE_QUOTA_SQL_RESULT_SET_ROWS_LIMIT: "50000"
重建服务:
cd /opt/cloudbeaver
docker compose up -d
实测回显(节选):
Container cloudbeaver-2623-stack-cloudbeaver-1 Recreated
Container cloudbeaver-2623-stack-cloudbeaver-1 Started
再跑 4.3 的 serverConfig 查询,四处全部生效(回显完整 JSON 见 4.3):
sessionExpireTime:1800000→3600000(1 小时)passwordPolicyConfiguration.minLength:8→10,requireMixedCase:true→falseresourceQuotas.sqlResultSetRowsLimit:"100000"→"50000"
同时启动日志中会话相关行同步变化:Max http session idle time: 3600s。再把变量删掉重建,由于运行时层已固化(见第三章机制 2),取值不会回退到出厂默认;要回退需在管理界面改回或删除工作区重新初始化。
十二、生产配置模板
适用场景:8 GB 内存的内网团队服务器、约 20 个用户、以只读查询为主。在编排 environment: 段使用:
CB_SERVER_NAME: "CloudBeaver Prod"
CB_SERVER_URL: "https://cloudbeaver.example.com/"
JAVA_OPTS: "-Xms256m -Xmx512m"
TZ: "Asia/Shanghai"
# 安全基线
CLOUDBEAVER_APP_ANONYMOUS_ACCESS_ENABLED: "false"
CLOUDBEAVER_POLICY_MIN_LENGTH: "10"
CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE: "true"
CLOUDBEAVER_EXPIRE_SESSION_AFTER_PERIOD: "1800000"
# 资源护栏
CLOUDBEAVER_RESOURCE_QUOTA_SQL_RESULT_SET_ROWS_LIMIT: "50000"
CLOUDBEAVER_RESOURCE_QUOTA_SQL_MAX_RUNNING_QUERIES: "50"
# 反代之后开启
CLOUDBEAVER_APP_FORWARD_PROXY: "true"
要点解读:堆上限 512 MB 足够 20 人级团队;会话 30 分钟过期提高账号安全;结果集 5 万行、并发查询 50 防止个别大查询拖垮服务;forwardProxy 与强制 HTTPS 只在反代 TLS 就绪后开启。用户数上百时先把堆提到 -Xmx1g 再观察,不要一次给足整机内存。
十三、常见问题
Q1:改了环境变量没生效
只用了 docker compose restart(只重启进程)。必须 docker compose up -d 重建服务;重建后用 4.3 的查询回显核对。
Q2:删掉环境变量后配置没还原
运行时层已把当时的生效值固化进占位符默认值(第三章机制 2)。在管理界面改回,或停服后编辑 workspace/.data/.cloudbeaver.runtime.conf 对应键,再启动。
Q3:口令策略设为最小 10 位,API 仍能把口令改成 3 位
实测确认:策略只在浏览器自助改密流程强制,管理 API(setUserCredentials)与登录不校验(见 6.2)。需要强保证时在账号发放流程里自行校验。
Q4:新建 SQLite 连接成功,一连就报 Driver disabled
驱动在禁用清单里,创建不拦、执行期才拦(第十章)。在管理界面 Drivers 里启用对应驱动后重试。
Q5:内嵌 H2 库的账号口令是什么
每个工作区初始化时随机生成,写在 workspace/.data/.cloudbeaver.runtime.conf 的 database.user / database.password 里;服务运行期间 H2 文件被独占锁定,直读需先停服(操作实例见部署篇第十一章 Q1)。
Q6:想彻底重置所有配置
停服后清空工作区目录再启动,即回到首次初始化状态(向导或 CB_ADMIN_* 自动初始化)。工作区即全部状态,清空前先备份。
十四、参考链接
- 官方 Wiki:Server Configuration(参数全集):https://github.com/dbeaver/cloudbeaver/wiki/Server-Configuration (查询日期 2026-10-25)
- 官方 Wiki:Server Database(内部库与迁移):https://github.com/dbeaver/cloudbeaver/wiki/Server-Database (查询日期 2026-10-25)
- 官方 Wiki:Supported databases(CE 预下载驱动清单):https://github.com/dbeaver/cloudbeaver/wiki/Supported-databases (查询日期 2026-10-25)
- 官方 Wiki:Log customization(logback 配置):https://github.com/dbeaver/cloudbeaver/wiki/Log-customization (查询日期 2026-10-25)
- 官方 Wiki:Command line parameters(JAVA_OPTS 与系统参数):https://github.com/dbeaver/cloudbeaver/wiki/Command-line-parameters (查询日期 2026-10-25)