文档首页 / 数据源配置

数据源配置

新建、测试、复制、删除数据连接的步骤,表单字段说明,连接池高级参数,密码加密与访问权限。

概述

「数据连接」保存报表、大屏与公共数据集访问数据库所需的连接信息。一个数据连接对应一个数据库账号,数据集通过「数据连接」下拉框选用它。

数据连接页面共四个标签页:

标签页 用途 说明文档
数据连接 新建、编辑、测试、复制、删除连接 本文
全局设置 连接池默认值、安全、监控、慢查询 驱动管理与连接池
连接池 查看与关闭运行中的连接池 驱动管理与连接池
驱动管理 查看内置驱动、上传自定义驱动 驱动管理与连接池

目前只支持 JDBC 类型的数据连接,可选数据库见 支持的数据库。

功能入口

「系统」菜单 > 「数据连接」。进入页面后左侧是数据连接树,支持搜索与拖拽排序;右侧是所选连接的详情,页头按钮为「测试连接」「编辑」「复制」「删除」;左侧的「新建数据连接」用于新建。

页面需要系统权限 datasource(名称「数据连接」),见文末「访问权限」。

操作步骤

新建数据连接

  1. 点击「新建数据连接」,打开编辑对话框。
  2. 填写「数据连接名称」,选择「数据库类型」。选择后「端口」自动填入该类型的默认端口。
  3. 填写「主机」「端口」「数据库名称」「用户名」「密码」。Oracle 另需选择「连接模式」。
  4. 需要指定模式时,在填好用户名和密码后从「模式名称」下拉框选择。
  5. 需要附加 JDBC 参数时,在「扩展参数」中点击「添加参数」,填写参数名与参数值。
  6. 检查只读显示的「URL连接」是否符合预期。
  7. 点击「测试连接」,提示「数据库连接测试通过」后点击「保存」。

必填项未填写时保存会提示「请填写完整」;名称与已有连接重复时提示「数据源名称已存在」。

「新建数据连接」对话框

编辑数据连接

在详情页点击「编辑」。密码框不会回显已保存的密码;留空保存表示沿用原密码,重新输入则替换。测试连接与「模式名称」查询同样在密码留空时使用已保存的密码。

复制数据连接

点击「复制」,在「请输入新数据连接名称」的提示框(标题「复制数据连接」)中输入新名称。服务端直接复制加密后的配置,因此密码也一并复制。

删除数据连接

点击「删除」,确认提示为「此操作将永久删除该记录, 是否继续?」。删除、重命名或修改连接时,该连接对应的连接池缓存会被清除,下次访问时按新配置重建。

注意:仍被数据集引用的连接被删除后,这些数据集执行时会失败。

属性说明

基本连接字段

属性 说明 取值/默认值
数据连接名称 连接的显示名,全局不可重复 必填
数据库类型 数据库产品。未内置驱动的类型带「(需上传驱动)」 必填,见 支持的数据库
主机 数据库服务器地址 默认 localhost
端口 数据库监听端口 1–65535,随类型给出默认值
数据库名称 库名。SQLite 填文件路径 必填
连接模式 仅 Oracle 显示 「服务名 (Service Name)」或「SID」
用户名 登录账号 必填
密码 登录密码 编辑时留空表示不修改
模式名称 仅支持模式的类型显示;填好用户名和密码后在线查询,可手动输入 可选
编码 可选:默认、UTF-8、GBK、BIG5、UTF-16、EUC_JP、EUC_KR、CP850 默认
URL连接 根据以上字段生成的 JDBC URL,只读显示 自动生成
扩展参数 参数名/参数值列表,追加到 URL 可选

注意:「编码」只是保存在连接配置中,不会写入 URL,连接建立时也没有使用它。需要指定字符集时,请用「扩展参数」,例如 MySQL 添加 characterEncoding=UTF-8。

连接池高级字段

这些字段位于对话框的高级设置。留空表示不设置,此时使用连接池组件 HikariCP 自带的默认值;只有填写了的字段才会生效。

属性 说明 取值/单位
只读连接 以只读方式获取连接 开关
连接超时时间 从连接池获取连接的最长等待 0–60,秒(占位提示 30)
验证超时时间 校验连接是否有效的最长等待 0–60,秒(占位提示 5)
连接的最大生命周期 连接存活的最长时间,超过后被回收重建 0–200,分钟(占位提示 30)
空闲连接超时时间 空闲连接被回收前的等待 0–200,分钟(占位提示 10)
空闲连接保活时间 对空闲连接定期保活 0–200,分钟(占位提示 8)
最小空闲连接数 池中保持的最少空闲连接 0–200(占位提示 10)
最大连接连接数 池允许的最大连接数(界面文案如此) 0–200(占位提示 10)
连接测试查询语句 借出连接前的校验语句 例如 SELECT 1

保存时前端把秒换算为毫秒、分钟换算为毫秒后交给后端。占位提示只是输入框的示例值,并不等于留空时的实际取值。

页头按钮

按钮 作用
测试连接 用当前表单(详情页则用已保存配置)尝试连接
编辑 打开编辑对话框
复制 复制为新连接
删除 永久删除
关闭 / 保存 对话框底部,关闭或保存

连接测试

点击「测试连接」,后端使用 JDBC 驱动直接建立一次连接,成功提示「数据库连接测试通过」,失败提示「数据库连接失败:」加具体原因。测试和查询「模式名称」列表都不经过连接池。

常见原因:

现象 排查方向
找不到驱动类 对应类型带「(需上传驱动)」,先在「驱动管理」上传
连接超时或拒绝 主机、端口、防火墙,数据库是否允许该来源 IP
认证失败 用户名、密码,或 Oracle 的连接模式选错
「不支持的数据源类型」 数据连接类型不是 jdbc

密码加密与安全

  • 前端使用 AES 加密整段连接配置后提交,服务端再用 ContentProtector 重新加密入库。
  • 服务端密钥取环境变量 SIGHTDATA_DATASOURCE_KEY,或系统属性 sightdata.datasource.key;两者都未设置时使用内置的兼容默认值。生产环境应自行设置。
  • 更换服务端密钥后,已保存的连接无法用新密钥解密,需要逐个重新保存。
  • 详情接口返回给浏览器前,password、secret、token 等敏感字段会被清空。
  • JDBC URL 会经过安全校验,拒绝 allowLoadLocalInfile、autoDeserialize、socketFactory、queryInterceptors,H2 的 INIT、RUNSCRIPT、CREATE ALIAS 等危险内容。
  • 连接如果指向系统自身的元数据库(按主机、端口、库名及模式比较),默认拒绝保存。管理员可在提示中选择「仍然强制保存」,该操作会记入审计。复制这类连接始终被拒绝。

注意:给报表使用的数据库账号只授予读权限。报表 SQL 虽有注入校验,但账号权限才是最后的防线。

访问权限

  • 数据连接页面、连接池、驱动与全局设置的接口需要系统权限 datasource。
  • 数据集的管理接口接受 datasource 或 report-design 任一权限,因此报表设计人员无需管理数据连接也能创建数据集。
  • 报表 SQL 日志开关(「输出每条SQL日志」)会把查询参数写入日志,可能包含患者信息,生产环境保持「关闭(推荐)」。

示例

为医院 Oracle 库配置只读连接,使用 SID 方式:

字段 填写
数据连接名称 his_oracle
数据库类型 Oracle
主机 / 端口 10.0.3.15 / 1521
连接模式 SID
数据库名称 HISDB
用户名 rpt_reader
连接测试查询语句 SELECT 1 FROM DUAL

生成的 URL 为 jdbc:oracle:thin:@10.0.3.15:1521:HISDB。测试通过后,在数据集编辑对话框的「数据连接」中即可选择 his_oracle。

相关文档

联系我们

请填写您的信息,我们将在 1 个工作日内与您联系。