Files
MyGoNavi/docs/HighGo_Optional_Code_Changes.md
杨国锋 72811092b4 feat(datasource): 新增 MariaDB、Vastbase、HighGo、MongoDB、SQL Server 五种数据源支持
- MariaDB:MySQL驱动占位,默认端口3306,归类关系型数据库
- Vastbase(海量):PG驱动占位,默认端口5432,归类国产数据库
- HighGo(瀚高):PG驱动,支持SM3认证扩展,归类国产数据库
- MongoDB:官方驱动实现,归类NoSQL
- SQL Server:微软官方驱动实现,归类关系型数据库
- ConnectionModal 新增数据源选项卡与默认端口配置
- database.go 新增5种类型的实例化分支
- 同步更新 db_context、methods_db、sql_sanitize、methods_file、sql_helpers 类型判断
- 新增 HighGo SM3 驱动集成指南
2026-02-08 13:39:39 +08:00

4.0 KiB
Raw Blame History

HighGo 可选代码优化建议

一、sslmode 配置优化

当前状态

文件internal/db/highgo_impl.go:43

当前代码

q.Set("sslmode", "disable")

建议修改

根据瀚高官方文档sslmode 的默认值应该是 require。建议修改为:

q.Set("sslmode", "require")

修改原因

  1. 符合官方规范:瀚高官方文档明确指出默认 sslmode 为 require
  2. 安全性提升:启用 SSL 加密可以保护数据传输安全
  3. 生产环境最佳实践:生产环境应该启用 SSL 连接

是否需要修改?

不一定需要修改,取决于您的实际环境:

保持 disable 的场景:

  • 开发/测试环境
  • HighGo 服务器未配置 SSL 证书
  • 内网环境,不需要加密传输
  • 快速测试连接功能

修改为 require 的场景:

  • 生产环境
  • HighGo 服务器已配置 SSL 证书
  • 跨网络连接,需要加密保护
  • 符合安全合规要求

如何修改

如果您决定修改,可以使用以下命令:

方式 1直接修改固定为 require

// 文件internal/db/highgo_impl.go 第 43 行
q.Set("sslmode", "require")

方式 2可配置推荐

如果希望让用户可以选择 sslmode可以修改为

// 在 getDSN 方法中
sslmode := "disable" // 默认值
if config.SSLMode != "" {
    sslmode = config.SSLMode
}
q.Set("sslmode", sslmode)

然后在 internal/connection/connection.goConnectionConfig 结构体中添加字段:

type ConnectionConfig struct {
    // ... 现有字段
    SSLMode string `json:"sslMode,omitempty"` // SSL 模式disable, require, verify-ca, verify-full
}

前端 UI 也需要相应添加 sslmode 选择控件。

测试建议

修改后请务必测试:

  1. SSL 启用测试

    • 连接配置了 SSL 的 HighGo 服务器
    • 验证连接成功
  2. SSL 禁用测试

    • 连接未配置 SSL 的 HighGo 服务器
    • 验证是否会报错(如果设置为 require 会报错)
  3. 兼容性测试

    • 测试现有的 HighGo 连接配置是否仍然可用

二、其他可选优化

1. 默认端口提示优化

文件frontend/src/components/ConnectionModal.tsx

当前状态HighGo 的默认端口已正确设置为 5866

建议:无需修改,已符合官方规范

2. 默认数据库名称

文件internal/db/highgo_impl.go:33

当前代码

if dbname == "" {
    dbname = "highgo" // HighGo default database
}

建议:无需修改,已符合官方规范(默认数据库为 highgo

3. 默认用户名

当前状态:未在代码中硬编码默认用户名

瀚高官方默认sysdba

建议

  • 可以在前端 UI 的 HighGo 连接表单中,将用户名输入框的 placeholder 设置为 sysdba
  • 但不建议硬编码默认值,让用户自行输入更安全

三、总结

必须修改的项目

  • (当前代码已基本符合规范)

建议修改的项目

  1. sslmode 配置(根据实际环境决定)
    • 开发环境:保持 disable
    • 生产环境:修改为 require

可选优化的项目

  1. 将 sslmode 改为可配置(需要修改前后端)
  2. 前端 UI 添加 sslmode 选择控件
  3. 用户名输入框添加 sysdba 提示

四、修改优先级

优先级 1

  • 集成瀚高 SM3 驱动(参考 HighGo_SM3_Integration_Guide.md

优先级 2

  • 根据部署环境调整 sslmode 配置

优先级 3

  • 将 sslmode 改为可配置
  • UI 优化placeholder 提示等)

五、下一步行动

建议按以下顺序执行:

  1. 先集成 SM3 驱动(参考集成指南)
  2. 测试基本连接功能(使用 sslmode=disable
  3. 如果生产环境需要 SSL,再修改 sslmode 配置
  4. 验证所有功能正常后,考虑可选优化项

注意:所有代码修改都应该在集成 SM3 驱动并验证基本功能正常后再进行。