Варианты подключения GO-MSSQLDB

В этой статье представлен полный справочник по всем параметрам соединения, принятым go-mssqldb драйвером. Для синтаксиса формата строка подключения см. раздел Connection strings.

Общие параметры

Parameter Aliases Default Description
user id user - Имя входа SQL Server.
password - - Пароль для входа в SQL Server.
database - - База данных целей.
connection timeout - 0 Тайм-аут входа — через секунды. 0 ждёт бесконечно. Предпочитайте контексты Go для тайм-аутов соединений и запросов.
dial timeout - 15 x protocol count Тайм-аут сетевого набора за секунды. 0 ждёт бесконечно. Драйвер по умолчанию устанавливает 15 секунд по зарегистрированному протоколу.
encrypt - false Режим шифрования. Azure SQL всегда требует серверного шифрования. См. Шифрование и сертификаты.
app name - - Название приложения отправлено в запись входа.
authenticator - - Пользовательский аутентификатор, зарегистрированный внешними пакетами, такими azureadкак .

Сервер и порт

В форматах ADO и ODBC сервер и порт являются отдельными параметрами:

Parameter Default Description
server localhost Имя хоста SQL Server, по желанию включая \instance.
port 1433 Номер порта TCP.

В формате URL укажите хост и порт непосредственно в URL: sqlserver://host:port.

Отработка отказа

Parameter Default Description
failoverpartner - Имя хоста партнера по резервному подключению.
failoverpartnerspn - Имя принципиала сервиса (SPN) для партнёра по переключению на резерв.
failoverport 1433 TCP-порт для партнёра по переключению на резерв.

Когда основной сервер недоступен, драйвер пытается автоматически подключиться к партнёру по резервированию.

Сеть и производительность

Parameter Default Description
packet size 4096 Размер пакета TDS в байтах. Допустимый диапазон: 512-32767.
keepAlive 30 Интервал сохранения живых через секунды. 0 использует стандартную операционную систему.
TrustServerCertificate Зависит от encrypt Когда true, пропускайте проверку сертификатов сервера. По умолчанию — false когда encrypt указано и true когда encrypt опущено. Игнорируется, когда encrypt=strict. Не рекомендуется для эксплуатации.
multisubnetfailover - Включите многосетевое резервное переключение для групп доступности AlallOn.

Намерение приложения

Parameter Ценности Description
ApplicationIntent ReadOnly, ReadWrite Объявляет, подключается ли приложение для операций только чтения или для чтения-записи. Используется с маршрутизацией только для чтения AlwaysOn.

Рабочая станция и SPN

Parameter Default Description
Workstation ID - Имя рабочей станции отправлено в запись входа.
ServerSPN - Имя главного сервиса для SQL Server. Требуется только в нестандартных конфигурациях SPN.

Протокол

Parameter Ценности Description
protocol tcp, np, lpc, admin транспортного протокола; См. Протоколы.
pipe - Названа трубная дорожка. Применяется только тогда, когда protocol=np.

Всегда зашифровано

Parameter Default Description
columnencryption None Настройте на true включение Always Encrypted. См. «Всегда зашифровано».

Шифрование и TLS

Parameter Default Description
encrypt См. Общие параметры strict(TDS 8.0), true/mandatory,/falseoptional , . disable
TrustServerCertificate Зависит от encrypt Пропускать проверку сертификата, когда true. По умолчанию — false когда encrypt указано и true когда encrypt опущено. Игнорируется, когда encrypt=strict.
certificate None Путь к файлу сертификатов PEM или DER для проверки цепочки сертификатов.
serverCertificate None Путь к файлу сертификатов PEM или DER для сравнения на уровне байтов (v1.5.0 и новее).
hostnameincertificate None Переопределить имя хоста, используемое при проверке сертификатов TLS.
tlsmin None Минимальная TLS-версия: 1.0, 1.1, 1.2, 1.3.

Для подробного руководства по шифрованию см. раздел «Шифрование и сертификаты».

Флаги логов

Используйте log параметр для управления диагностическим выходом. Значения — это флаги битмасок, и их можно объединить, добавив целочисленные значения:

Ценность Description
1 Ошибки лога
2 Лог-сообщения
4 Логовые ряды
8 Логирование SQL-запросов
16 Параметры журнала
32 Лог-транзакции
64 Информация о отладке логов
128 Повторные попытки логов

Пример: для регистрации ошибок и SQL-операторов установите log=9 (1 + 8).

Для получения дополнительной информации см. раздел «Логирование и диагностика».

Столбцы уникального идентификатора

Драйвер по умолчанию читает uniqueidentifier столбцы как необработанные массивы байтов. Чтобы получить стандартную строку в формате GUID, просканируйте в mssql.UniqueIdentifier вместо string или []byte. Драйвер не поддерживает автоматическое преобразование GUID через параметры соединения.

SessionInitSQL

SessionInitSQLне является параметром строка подключения. Настройте через NewConnectorConfig API:

import (
    "database/sql"
    "github.com/microsoft/go-mssqldb"
    "github.com/microsoft/go-mssqldb/msdsn"
)

config := msdsn.Config{
    Host:     "<server>",
    Port:     1433,
    Database: "AdventureWorks2025",
}

connector := mssql.NewConnectorConfig(config)
connector.SessionInitSQL = "SET ANSI_NULLS ON"
db := sql.OpenDB(connector)

Оператор SQL запускается сразу после установления каждого нового соединения, прежде чем соединение возвращается вызывающему.