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 je čistá knihovna pro Go a kompiluje se nativně na Linuxu a macOS bez externích C závislostí. Tento článek se zabývá platformově specifickou konfigurací pro autentizaci a certifikáty.
Installation
Instalace je na všech platformách stejná:
go get github.com/microsoft/go-mssqldb
Není potřeba žádný ovladač ODBC, FreeTDS ani jiné knihovny v C.
Ověřování SQL
SQL autentizace funguje identicky na Linuxu, macOS a Windows:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025
Ověřování NTLM
NTLM autentizace je podporována na všech platformách. Uveďte uživatelské jméno kvalifikované doménou:
Formát adresy URL
Zakódujte zpětné lomítko v DOMAIN\user pomocí URL jako %5C:
sqlserver://CONTOSO%5C<user>:<password>@<server>:1433?database=mydb
Formát ADO
Zpětná čára v uživatelském jménu spouští NTLM autentizaci:
server=<server>;user id=DOMAIN\<user>;password=<password>;database=AdventureWorks2025
Ovladač detekuje zpětné límítko v uživatelském jménu a automaticky používá NTLM. Na Linuxu ani macOS není potřeba žádná další konfigurace.
Ověřování protokolem Kerberos
Ověřování Kerberos v systému Linux a macOS používá balíček krb5, který je integrovaný v ovladači. Nejsou zde žádné externí knihovní závislosti.
Prerequisites
Platný konfigurační soubor Kerberos. Výchozí cesta je
/etc/krb5.conf:[libdefaults] default_realm = MYDOMAIN.COM dns_lookup_kdc = true [realms] MYDOMAIN.COM = { kdc = dc1.mydomain.com }Instance serveru SQL Server musí mít zaregistrovaný název instančního objektu služby (SPN) (například
MSSQLSvc/<server>.mydomain.com:1433).
Připojte se pomocí klávesové karty
Zadejte v připojovacím řetězci cestu k souboru keytab a oblast Kerberos:
sqlserver://<user>@MYDOMAIN.COM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYDOMAIN.COM&krb5-keytabfile=/etc/<user>.keytab
Připojte se pomocí mezipaměti přihlašovacích údajů
Nejprve si opatřete lístek:
kinit <user>@MYDOMAIN.COM
Poté se připojte pomocí cacheovaného přihlašovacího údaje:
sqlserver://<user>@MYDOMAIN.COM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYDOMAIN.COM&krb5-credcachefile=/tmp/krb5cc_1000
Kerberos parametry
| Parameter | Výchozí | Description |
|---|---|---|
krb5-configfile |
/etc/krb5.conf |
Cesta k konfiguračnímu souboru Kerberos. |
krb5-realm |
- | realm systému Kerberos (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í Distribučního centra klíčů (KDC). |
krb5-udppreferencelimit |
1 |
Maximální velikost zprávy UDP před přechodem na TCP. |
Pro více informací viz SQL Server a Windows authentication.
Windows authentication (SSPI) není dostupná
Na Linuxu a macOS není Windows integrovaná autentizace (SSPI / trusted_connection=yes) dostupná. Použijte jednu z následujících alternativ:
| Metoda | Připojovací řetězec |
|---|---|
| protokol NTLM | sqlserver://DOMAIN%5Cuser:password@host?database=db |
| Kerberos (klávesa) | sqlserver://user@REALM@host?database=db&krb5-realm=REALM&krb5-keytabfile=/path |
| Kerberos (cache) | sqlserver://user@REALM@host?database=db&krb5-realm=REALM&krb5-credcachefile=/path |
| SQL autentizace | sqlserver://user:password@host?database=db |
| Microsoft Entra ID |
sqlserver://host?database=db&fedauth=ActiveDirectoryDefault&encrypt=true&TrustServerCertificate=false (použít ovladač azuresql) |
Konfigurace certifikátu
V Linuxu a macOS musí být certifikáty TLS používané s parametry certificate nebo serverCertificate soubory kódovanými ve formátu PEM. Řidič je čte přímo pomocí balíčku crypto/tls od Go.
Úložiště systémové důvěry
Ovladač používá výchozí úložiště důvěry v certifikáty operačního systému. V Linuxu je toto úložiště důvěryhodných certifikátů obvykle umístěno v umístění /etc/ssl/certs/ nebo /etc/pki/tls/certs/. V systému macOS se používá systémová klíčenka.
Pro přidání vlastního CA certifikátu do systémového úložiště:
Ubuntu/Debian:
sudo cp myca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
RHEL/Fedora:
sudo cp myca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
macOS:
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain myca.crt
Alternativně použijte certificate parametr připojení k přímé specifikaci CA certifikátu bez úpravy systémového úložiště:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&encrypt=true&certificate=/path/to/ca-cert.pem