Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Driver go-mssqldb adalah perpustakaan Go murni dan dikompilasi secara native di Linux dan macOS tanpa dependensi C eksternal. Artikel ini membahas konfigurasi khusus platform untuk autentikasi dan sertifikat.
Installation
Instalasi sama di semua platform:
go get github.com/microsoft/go-mssqldb
Tidak diperlukan driver ODBC, FreeTDS, atau pustaka C lainnya.
Autentikasi SQL
Autentikasi SQL bekerja secara identik di Linux, macOS, dan Windows:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025
Otentikasi NTLM
Autentikasi NTLM didukung di semua platform. Berikan nama pengguna yang memenuhi syarat domain:
Format URL
Kodekan URL untuk backslash di DOMAIN\user sebagai %5C:
sqlserver://CONTOSO%5C<user>:<password>@<server>:1433?database=mydb
Format ADO
Garis miring terbalik dalam nama pengguna memicu autentikasi NTLM:
server=<server>;user id=DOMAIN\<user>;password=<password>;database=AdventureWorks2025
Driver mendeteksi karakter backslash (\) dalam nama pengguna dan secara otomatis menggunakan NTLM. Tidak diperlukan konfigurasi tambahan di Linux atau macOS.
Autentikasi Kerberos
Autentikasi Kerberos di Linux dan macOS menggunakan paket yang krb5 terpasang di driver. Tidak ada dependensi perpustakaan eksternal.
Prasyarat
File konfigurasi Kerberos yang valid. Jalur defaultnya adalah
/etc/krb5.conf:[libdefaults] default_realm = MYDOMAIN.COM dns_lookup_kdc = true [realms] MYDOMAIN.COM = { kdc = dc1.mydomain.com }Instans SQL Server harus memiliki Nama Prinsipal Layanan (SPN) yang terdaftar (misalnya,
MSSQLSvc/<server>.mydomain.com:1433).
Hubungkan dengan keytab
Tentukan jalur file keytab dan ranah Kerberos di string koneksi:
sqlserver://<user>@MYDOMAIN.COM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYDOMAIN.COM&krb5-keytabfile=/etc/<user>.keytab
Terhubung dengan cache kredensial
Pertama, dapatkan tiket:
kinit <user>@MYDOMAIN.COM
Kemudian sambungkan dengan menggunakan kredensial yang di-cache:
sqlserver://<user>@MYDOMAIN.COM@<server>:1433?database=AdventureWorks2025&krb5-realm=MYDOMAIN.COM&krb5-credcachefile=/tmp/krb5cc_1000
Parameter Kerberos
| Parameter | Default | Description |
|---|---|---|
krb5-configfile |
/etc/krb5.conf |
Jalur ke file konfigurasi Kerberos. |
krb5-realm |
- | Alam Kerberos (misalnya, MYDOMAIN.COM). |
krb5-keytabfile |
- | Jalur ke file keytab. |
krb5-credcachefile |
- | Jalur ke file cache kredensial. |
krb5-dnslookupkdc |
true |
Gunakan catatan DNS SRV untuk menemukan Pusat Distribusi Kunci (KDC). |
krb5-udppreferencelimit |
1 |
Ukuran pesan UDP maksimum sebelum beralih ke TCP. |
Untuk informasi selengkapnya, lihat SQL Server dan Windows authentication.
Autentikasi Windows (SSPI) tidak tersedia
Di Linux dan macOS, autentikasi terintegrasi Windows (SSPI /trusted_connection=yes) tidak tersedia. Gunakan salah satu alternatif berikut:
| Metode | Rangkaian koneksi |
|---|---|
| MNTL | sqlserver://DOMAIN%5Cuser:password@host?database=db |
| Kerberos (keytab) | 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 |
| Autentikasi SQL | sqlserver://user:password@host?database=db |
| Microsoft Entra ID |
sqlserver://host?database=db&fedauth=ActiveDirectoryDefault&encrypt=true&TrustServerCertificate=false (gunakan driver azuresql) |
Konfigurasi sertifikat
Di Linux dan macOS, sertifikat TLS yang digunakan dengan certificate parameter atau serverCertificate harus berupa file yang dikodekan PEM. Driver tersebut membacanya dengan langsung menggunakan paket Go crypto/tls.
Penyimpanan sertifikat tepercaya sistem
Driver menggunakan penyimpanan sertifikat tepercaya default sistem operasi. Di Linux, penyimpanan kepercayaan ini biasanya terletak di /etc/ssl/certs/ atau /etc/pki/tls/certs/. Di macOS, gantungan kunci sistem digunakan.
Untuk menambahkan sertifikat CA kustom ke penyimpanan sistem:
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
Atau, gunakan certificate parameter koneksi untuk menentukan sertifikat CA secara langsung tanpa memodifikasi penyimpanan sistem:
sqlserver://<user>:<password>@<server>:1433?database=AdventureWorks2025&encrypt=true&certificate=/path/to/ca-cert.pem