Documentation ¶
Index ¶
Constants ¶
View Source
const ( DsnTypeURL = 1 DsnTypeOdbc = 2 DsnTypeAdo = 3 )
View Source
const ( EncryptionOff = 0 EncryptionRequired = 1 EncryptionDisabled = 3 EncryptionStrict = 4 )
View Source
const ( Database = "database" Encrypt = "encrypt" Password = "password" ChangePassword = "change password" UserID = "user id" Port = "port" TrustServerCertificate = "trustservercertificate" Certificate = "certificate" TLSMin = "tlsmin" PacketSize = "packet size" LogParam = "log" ConnectionTimeout = "connection timeout" HostNameInCertificate = "hostnameincertificate" KeepAlive = "keepalive" ServerSpn = "serverspn" WorkstationID = "workstation id" AppName = "app name" ApplicationIntent = "applicationintent" FailoverPartner = "failoverpartner" FailOverPort = "failoverport" DisableRetry = "disableretry" Server = "server" Protocol = "protocol" DialTimeout = "dial timeout" Pipe = "pipe" MultiSubnetFailover = "multisubnetfailover" )
Variables ¶
View Source
var ProtocolDialers map[string]ProtocolDialer = map[string]ProtocolDialer{}
View Source
var ProtocolParsers []ProtocolParser = []ProtocolParser{
tcpParser{Prefix: "tcp"},
tcpParser{Prefix: "admin"},
}
ProtocolParsers is an ordered list of protocols that can be dialed. Each parser must have a corresponding Dialer in mssql.ProtocolDialers
Functions ¶
func SetupTLS ¶
func SetupTLS(certificate string, insecureSkipVerify bool, hostInCertificate string, minTLSVersion string) (*tls.Config, error)
Build a tls.Config object from the supplied certificate.
func TLSVersionFromString ¶
Types ¶
type BrowserData ¶
type BrowserMsg ¶
type BrowserMsg byte
const ( BrowserDefault BrowserMsg = 0 BrowserAllInstances BrowserMsg = 0x03 BrowserDAC BrowserMsg = 0x0f )
type Config ¶
type Config struct { Port uint64 Host string Instance string Database string User string Password string Encryption Encryption TLSConfig *tls.Config FailOverPartner string FailOverPort uint64 // If true the TLSConfig servername should use the routed server. HostInCertificateProvided bool // Read Only intent for application database. // NOTE: This does not make queries to most databases read-only. ReadOnlyIntent bool LogFlags Log ServerSPN string Workstation string AppName string // If true disables database/sql's automatic retry of queries // that start on bad connections. DisableRetry bool DialTimeout time.Duration // DialTimeout defaults to 15s per protocol. Set negative to disable. ConnTimeout time.Duration // Use context for timeouts. KeepAlive time.Duration // Leave at default. PacketSize uint16 Parameters map[string]string // Protocols is an ordered list of protocols to dial Protocols []string // ProtocolParameters are written by non-tcp ProtocolParser implementations ProtocolParameters map[string]interface{} // BrowserMsg is the message identifier to fetch instance data from SQL browser BrowserMessage BrowserMsg // ChangePassword is used to set the login's password during login. Ignored for non-SQL authentication. ChangePassword string //ColumnEncryption is true if the application needs to decrypt or encrypt Always Encrypted values ColumnEncryption bool // Attempt to connect to all IPs in parallel when MultiSubnetFailover is true MultiSubnetFailover bool }
type Encryption ¶
type Encryption int
type ProtocolDialer ¶
type ProtocolDialer interface { // Translates data from SQL Browser to parameters in the config ParseBrowserData(data BrowserData, p *Config) error // DialConnection eturns a Dialer to make the connection. On success, also set Config.ServerSPN if it is unset. DialConnection(ctx context.Context, p *Config) (conn net.Conn, err error) // Returns true if information is needed from the SQL Browser service to make a connection CallBrowser(p *Config) bool }
ProtocolDialer makes the network connection for a protocol
type ProtocolParser ¶
type ProtocolParser interface { // ParseServer updates the Config with protocol properties from the server. Returns an error if the server isn't compatible. ParseServer(server string, p *Config) error // Protocol returns the name of the protocol dialer Protocol() string // Hidden returns true if this protocol must be explicitly chosen by the application Hidden() bool }
ProtocolParser can populate Config with parameters to dial using its protocol
Click to show internal directories.
Click to hide internal directories.