Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sürücü go-mssqldb üç bağlantı dizesi formatını kabul eder: URL, ADO ve ODBC. Üç format da aynı bağlantı parametreleri setini destekler. Uygulamanıza veya dağıtım modelinize en uygun formatı seçin.
İpucu
Yeni Go uygulamaları için URL formatı kullanın. Güvenli kodlama ve programatik yapı için Go net/url paketiyle entegre olur. .NET uygulamalarından bağlantı dizelerini taşırken ADO formatını kullanın ve nokta virgül veya diğer özel karakterler içeren değerler için brace kaçış daha uygun olduğunda ODBC formatını kullanın.
URL biçimi
URL formatı bu sqlserver:// şemayı takip eder ve Go uygulamaları için en yaygın formattır:
sqlserver://username:password@host:port?database=AdventureWorks2025¶m=value
Examples
SQL kimlik doğrulama ile yerel bir varsayılan instance'a bağlanın:
sqlserver://<user>:<password>@<server>?database=AdventureWorks2025
Adlandırılmış örneğe bağlanın:
sqlserver://<user>:<password>@<server>/myinstance?database=AdventureWorks2025
Connect to Azure SQL Veritabanı:
sqlserver://<user>:<password>@<server>.database.windows.net?database=AdventureWorks2025&encrypt=true&TrustServerCertificate=false
Windows authentication'ı kullanın (sadece Windows için):
sqlserver://<server>?database=AdventureWorks2025&trusted_connection=yes
Uyarı
URL formatında port varsayılan olarak 1433 olur. Farklı bir port belirtmek için, ana bilgisayardan sonra ekleyin: sqlserver://<server>:1434?database=AdventureWorks2025.
Şifrelerdeki özel karakterler
URL formatında, özel karakterli şifreler yüzde olarak kodlanmalıdır. Kodlama gerektiren yaygın karakterler:
| Karakter | Encoded | Örnek şifre | Kodlanmış form |
|---|---|---|---|
@ |
%40 |
p@ssword |
p%40ssword |
: |
%3A |
p:ssword |
p%3Assword |
/ |
%2F |
p/ssword |
p%2Fssword |
# |
%23 |
p#ssword |
p%23ssword |
% |
%25 |
p%ssword |
p%25ssword |
Otomatik olarak kodlamayı işlemek için kullanılır url.UserPassword() :
u := &url.URL{
Scheme: "sqlserver",
User: url.UserPassword("<user>", "p@ss:word#1"),
Host: "<server>:1433",
}
u.RawQuery = url.Values{"database": {"AdventureWorks2025"}}.Encode()
// Result: sqlserver://<user>:p%40ss%3Aword%231@<server>:1433?database=AdventureWorks2025
ADO formatında yüzde kodlama gerekmiyor. Bir değer nokta virgül içeriyorsa, onu çift tırnak içinde sarın: password="<password>". ODBC formatında, değeri braketlerle sarın: password={<password>}.
ADO formatı
ADO formatı, nokta virgülle ayrılmış key=value çiftler kullanır:
server=<server>;user id=<user>;password=<password>;database=AdventureWorks2025
ADO örnekleri
Bir port numarasıyla bağlanın:
server=<server>;port=1434;user id=<user>;password=<password>;database=AdventureWorks2025
Adlandırılmış örneğe bağlanın:
server=<server>\myinstance;user id=<user>;password=<password>;database=AdventureWorks2025
Uyarı
ADO formatında server ve port alanları ayrı parametrelerdir. Değere iki nokta ayrılmış server port dahil etmeyin.
ODBC formatı
ODBC formatı, nokta virgülle ayrılmış odbc: çiftlerle preeki key=value kullanır. Özel karakterler içeren değerler braketlerle kaplanabilir:
odbc:server=<server>;user id=<user>;password={<password>};database=AdventureWorks2025
Diş teli kaçıyor
ODBC formatında, nokta virgüllerden, eşit işaretlerinden ve diğer özel karakterlerden kaçmak için bir değeri içine {} sarın. İç tellerin tam anlamıyla } bir kısmını eklemek için, bunu iki katına çıkarın:
odbc:password={my}}password}
Genel parametreler
Aşağıdaki parametreler üç formatın tamamında paylaşılmaktadır. Sürücü, takma adları yalnızca ADO format bağlantı dizilerinde çözer. URL ve ODBC format bağlantı dizileri parametre isimleriyle tam olarak eşleşir, sadece kaplan hariç.
| Parametre | Aliases | Description |
|---|---|---|
user id |
user |
SQL Server giriş adı. |
password |
- | SQL Server giriş şifresi. |
database |
- | Hedef veritabanı adı. |
connection timeout |
- | Giriş değişimi için süre aşımı. Sürücü varsayılan 0olarak , bu da giriş değişimine zaman aşımına bağlı değildir. İlk ağ bağlantısı ayrı olarak sınırlıdır.dial timeout Bağlantı ve sorgulama zamanlarını kontrol etmek için Go bağlamlarını kullanmayı tercih edin. Otomatik duraklatma etkin olan Azure SQL Veritabanı sunucusuz olduğunda, durdurulmuş veritabanına ilk bağlantı 40613 hatasıyla başarısız olur ve veritabanı devam eder. Daha uzun bir zaman aşımına göre tekrar deneme mantığı ekleyin. Veritabanları genellikle bir dakikadan kısa sürede yeniden başlar. Daha fazla bilgi için bkz. Otomatik duraklatma ve otomatik devam. |
dial timeout |
- | Ağ arama süresi saniyelerde. Kayıtlı protokol başına sürücü varsayılan süresi 15 saniyedir. Ayar 0 , sonsuza kadar beklemek yerine aynı varsayılan şeyi uygular. |
encrypt |
- | Şifreleme modu: strict, true/mandatory,false/optional , . disable Atlandığında, varsayılan olarak false/optional. Azure SQL ve production bağlantıları için açıkça ayarlanencrypt=true. |
TrustServerCertificate |
- | Sertifika doğrulamasını atlayın. Belirtildiğindeencrypt, varsayılan değer 'dir.false Atlandığındaencrypt, varsayılan değer .true Üretim ve Azure SQL bağlantıları için kullanılırfalse. |
app name |
- | Uygulama adı sunucuya iletilir. |
authenticator |
- | Özel kimlik doğrulama cihazı. Paket tarafından dahili olarak kullanılır azuread . |
Bağlantı seçeneklerinin tam listesi için Bağlantı seçenekleri bölümüne bakınız.
Kodda bağlantı dizileri oluştur
Ham dizeleri birleştirmek yerine bağlantı dizelerini programlayıcı olarak oluşturmak için type veya url.URL struct kullanınmsdsn.Config. Bu yaklaşım, enjeksiyon ve kodlama sorunlarını önler.
URL oluşturucu
Standart kütüphaneden güvenli bir şekilde bağlantı dizesi oluşturmak için kullanınurl.URL:
import "net/url"
query := url.Values{}
query.Add("database", "AdventureWorks2025")
query.Add("encrypt", "true")
query.Add("TrustServerCertificate", "false")
u := &url.URL{
Scheme: "sqlserver",
User: url.UserPassword("<user>", "<password>"),
Host: "<server>.database.windows.net:1433",
RawQuery: query.Encode(),
}
connString := u.String()
NewConnectorConfig
NewConnectorConfig Yapılandırılmış yapılandırma için kullanın, msdsn.Config özellikle özel bir çevirici veya SessionInitSQLaçık TLS ayarları yapmanız gerektiğinde :TrustServerCertificate
import (
"database/sql"
"github.com/microsoft/go-mssqldb"
"github.com/microsoft/go-mssqldb/msdsn"
)
config := msdsn.Config{
Host: "<server>",
Port: 1433,
Database: "AdventureWorks2025",
TrustServerCertificate: false,
}
connector := mssql.NewConnectorConfig(config)
db := sql.OpenDB(connector)
Eğer hala yer tutucuları yeniden yazan mssql modifikasyonlu ? sürücü adı davranışına bağımlıysanız, konnektör oluştururken yerine NewConnectorWithProcessQueryText kullanınNewConnectorConfig.