更新时间:2025-05-29 GMT+08:00
连接数据库(以SSL方式)
数据库的Go驱动支持SSL连接数据库,当开启SSL模式后,如果Go驱动采用SSL方式连接数据库服务端时,Go驱动默认走TLS 1.3标准协议,支持的tls版本最低为1.2。本小节主要介绍应用程序通过Go驱动如何采用SSL的方式对客户端进行配置。

基于SSL的证书认证方式不需要在连接串里面指定用户密码。
客户端配置
前置条件:登录GaussDB管理控制台,在“实例管理”页面,单击实例名称进入“基本信息”页面,单击“SSL”处的,下载根证书或捆绑包,将根证书ca.pem放置在客户端。
示例:
package main //依赖包根据环境中依赖包路径设置 import ( "database/sql" "fmt" _ [go驱动模块名] /*请根据go驱动实际模块名替换*/ "log" ) // 以单向认证为例,本示例以用户名和密码保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量(环境变量名称请根据自身情况进行设置) func main() { hostip := os.Getenv("GOHOSTIP") //GOHOSTIP为写入环境变量的IP地址 port := os.Getenv("GOPORT") //GOPORT为写入环境变量的port usrname := os.Getenv("GOUSRNAME") //GOUSRNAME为写入环境变量的用户名 passwd := os.Getenv("GOPASSWD") //GOPASSWDW为写入环境变量的用户密码 sslpasswd := os.Getenv("GOSSLPASSWD") //GOSSLPASSWD为写入环境变量的密码短语 dsnStr := "host=" + hostip + " port=" + port + " user=" + usrname + " password=" + passwd + " dbname=gaussdb" parameters := []string{ " sslmode=verify-ca sslrootcert=certs/ca.pem", } for _, param := range parameters { db, err := sql.Open("gaussdb", dsnStr+param) if err != nil { log.Fatal(err) } var f1 int err = db.QueryRow("select 1").Scan(&f1) if err != nil { log.Fatal(err) } else { fmt.Printf("RESULT: select 1: %d\n", f1) } db.Close() } }
父主题: 基于Go驱动开发