Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ovladač go-mssqldb podporuje autentizaci SQL Server, integrovanou autentizaci Windows (SSPI), NTLM a Kerberos. Tento článek pojednává o každé metodě a uvádí příklady připojovacích řetězců a ukázky kódu.
Pro autentizaci Microsoft Entra ID viz Microsoft Entra ID autentizace.
Volba metody ověřování
Použijte nejsilnější metodu, která odpovídá vašemu prostředí a identitní platformě:
| Preferuji toto pořadí | Method | Použijte ji, když |
|---|---|---|
| 1 | Microsoft Entra ID | Připojujete se k Azure SQL a můžete používat spravovanou identitu, identitu zátěže nebo jiný Entra flow bez ukládání hesel. |
| 2 | Integrovaná autentizace Windows (SSPI) | Vaše aplikace běží na Windows a může přímo používat aktuální identitu Windows. |
| 3 | Kerberos | Jste na Linuxu nebo macOS a už máte Kerberos tikety, klávesové tabule nebo spravované doménové prostředí. |
| 4 | protokol NTLM | Potřebujete ověření domény, ale Kerberos není dostupný ani praktický. |
| 5 | Ověřování SQL Serveru | Nemáte možnost integrované identity a musíte použít SQL přihlášení a heslo. |
Pokud funguje více metod, upřednostněte tu, která se vyhýbá dlouhotrvajícím tajemstvím a odpovídá nativnímu identitnímu systému hostitelské platformy.
Ověřování SQL Serveru
Autentizace SQL Server používá přihlašovací jméno a heslo uložené v SQL Server. Zadejte parametry user id a password:
Formát adresy URL
Note
V připojovacích řetězcích URL zakódujte speciální znaky v uživatelském jménu nebo hesle pomocí procentového kódování. Windows authentication uživatelská jména používají %5C pro oddělovač domén, například sqlserver://DOMAIN%5Cusername:password@host. V ADO a ODBC spojovacích řetězcích použijte literální DOMAIN\username tvar.
Zadejte uživatelské jméno a heslo v URL:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&encrypt=true
Formát ADO
Použijte klávesy user id a password v připojovací řetězec ve stylu ADO:
server=<server>;user id=<user>;password=<password>;database=AdventureWorks2025;Encrypt=true
Příklad kódu
Připojte se pomocí autentizace přes SQL Server a ověřte spojení:
package main
import (
"database/sql"
"log"
_ "github.com/microsoft/go-mssqldb"
)
func main() {
db, err := sql.Open("sqlserver",
"sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&encrypt=true")
if err != nil {
log.Fatal(err)
}
defer db.Close()
if err = db.Ping(); err != nil {
log.Fatal(err)
}
}
Integrovaná autentizace Windows (SSPI)
Na Windows ovladač používá SSPI (Security Support Provider Interface) k autentizaci pomocí přihlašovacích údajů aktuálního uživatele Windows. připojovací řetězec nepotřebuje uživatelské jméno ani heslo.
sqlserver://<server>?database=AdventureWorks2025&trusted_connection=yes&encrypt=true
Note
Integrovaná autentizace ve Windows přes SSPI funguje pouze tehdy, když aplikace Go běží na Windows a aktuální uživatel má přístup k instanci SQL Server.
Ověřování NTLM
NTLM autentizace funguje na všech platformách (Windows, Linux a macOS). Zadejte uživatelské jméno a heslo kvalifikované pro doménu:
Formát URL NTLM
Zakódujte zpětné lomítko v DOMAIN\<user> pomocí URL jako %5C:
sqlserver://DOMAIN%5C<user>:<password>@<server>?database=AdventureWorks2025&encrypt=true
Note
Ve formátu URL musíte zpětné lomítko v DOMAIN\<user> zakódovat pro URL jako %5C.
Formát NTLM ADO
Zpětná čára v uživatelském jménu signalizuje ovladači autentizaci NTLM:
server=<server>;user id=DOMAIN\<user>;password=<password>;database=AdventureWorks2025;Encrypt=true
Ovladač detekuje zpětné límítko v uživatelském jménu a automaticky používá NTLM.
Ověřování protokolem Kerberos
Kerberos autentizace funguje na Linuxu a macOS, pokud má systém platnou konfiguraci Kerberos. Ovladač používá balíček krb5 pro autentizaci Kerberos. Existují tři způsoby, jak poskytnout oprávnění.
Předpoklady
- Platný
krb5.confsoubor (výchozí cesta:/etc/krb5.conf). - SQL Server musí mít zaregistrovaný objekt Service Principal Name (SPN).
Metoda 1: Soubor Keytab
Soubor s klíčovými tabulkami obsahuje zašifrované hlavní klíče Kerberos. Zadejte cestu k souboru kláves a uživatelskou doménu:
sqlserver://<user>@MYREALM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYREALM&krb5-keytabfile=/path/to/user.keytab&encrypt=true
Metoda 2: Mezipaměť přihlašovacích údajů
Použijte existující mezipaměť přihlašovacích údajů Kerberos vytvořenou pomocí kinit.
sqlserver://<user>@MYREALM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYREALM&krb5-credcachefile=/tmp/krb5cc_1000&encrypt=true
Metoda 3: Surové přihlašovací údaje
Zadejte heslo přímo do připojovací řetězec. Ovladač používá poskytnuté přihlašovací údaje k provedení ověření Kerberos.
sqlserver://<user>@MYREALM:<password>@<server>:1433?database=AdventureWorks2025&krb5-realm=MYREALM&encrypt=true
Kerberos parametry
| Parameter | Výchozí | Description |
|---|---|---|
krb5-configfile |
/etc/krb5.conf |
Cesta k konfiguračnímu souboru Kerberos. |
krb5-realm |
- | Název kerberosové říše, například MYDOMAIN.COM. |
krb5-keytabfile |
- | Cesta k souboru s keytabem. |
krb5-credcachefile |
- | Cesta k souboru cache s přihlašovacím obsahem. |
krb5-dnslookupkdc |
true |
Použijte DNS SRV záznamy k nalezení KDC. |
krb5-udppreferencelimit |
1 |
Maximální velikost zprávy před přechodem z UDP na TCP. |
ServerSPN |
- | Přepsat automaticky vygenerované SPN. |