安装 go-mssqldb 驱动程序

go-mssqldb 驱动程序是一个可使用 go get 安装的 Go 模块。 本文涵盖了系统需求、安装步骤和验证。

先决条件

组件 Requirement
Go 1.25 或更高版本。 从 go.dev/dl 下载。
Microsoft SQL 平台 所有受支持的 SQL Server、Azure SQL 数据库、Azure SQL 托管实例、Fabric 中的 SQL 数据库、Fabric Data Warehouse 或 Azure Synapse Analytics 版本。
模块支持 你的项目必须使用 Go 模块 (项目根目录中的 go.mod 一个文件)。

安装驱动模块

  1. 在你的 Go 项目目录中打开一个终端。

  2. 运行 go get 以下载驱动及其依赖:

    go get github.com/microsoft/go-mssqldb
    
  3. 命令会自动更新你的 go.modgo.sum 文件。

安装可选软件包

驱动有针对特定场景的可选软件包。 只有在需要相应功能时才安装。

Microsoft Entra ID 身份验证

安装此包以使用 Microsoft Entra ID(前身为 Azure AD)凭据类型:

go get github.com/microsoft/go-mssqldb/azuread

该包注册了一个名为 azuresql 的驱动程序,该驱动程序支持所有 Microsoft Entra ID 凭据类型。 有关详细信息,请参阅 Microsoft Entra ID 身份验证

始终加密 - Azure 密钥保管库提供程序

安装此包以使用 Azure 密钥保管库 作为列主密钥存储:

go get github.com/microsoft/go-mssqldb/aecmk/akv

此程序包注册 Azure 密钥保管库列主密钥提供程序。 有关详细信息,请参阅 Always Encrypted

始终加密——本地证书提供商

安装此软件包,使用本地证书或 PFX 文件作为列主密钥存储:

go get github.com/microsoft/go-mssqldb/aecmk/localcert

该软件包注册本地证书和PFX文件列主密钥提供者。 有关详细信息,请参阅 Always Encrypted

验证安装

创建一个名为 verify.go 文件的文件,粘贴以下代码:

package main

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/microsoft/go-mssqldb"
)

func main() {
    connString := "sqlserver://<server>?database=AdventureWorks2025&trusted_connection=yes"
    db, err := sql.Open("sqlserver", connString)
    if err != nil {
        log.Fatal("Error creating connection: ", err.Error())
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        log.Fatal("Error pinging database: ", err.Error())
    }

    fmt.Println("Connected successfully.")
}

运行文件:

go run verify.go

如果输出显示 Connected successfully.,驱动已安装并正常工作。

注释

前例使用了 Windows 集成认证(trusted_connection=yes),仅在 Windows 上工作。 在Linux或macOS上,建议使用SQL认证、NTLM、Kerberos或Microsoft Entra ID。 示例请参见 认证连接字符串

升级驱动程序

升级到最新版本:

go get -u github.com/microsoft/go-mssqldb

要升级到特定版本:

go get github.com/microsoft/go-mssqldb@v1.10.0

升级后,运行 go mod tidy 以移除未使用的间接依赖。