package msdsn
import "github.com/microsoft/go-mssqldb/msdsn"
Index ¶
- Constants
- Variables
- func SetupTLS(certificate string, insecureSkipVerify bool, hostInCertificate string, minTLSVersion string) (*tls.Config, error)
- func TLSVersionFromString(minTLSVersion string) uint16
- type BrowserData
- type BrowserMsg
- type Config
- type Encryption
- type Log
- type ProtocolDialer
- type ProtocolParser
Constants ¶
const ( DsnTypeURL = 1 DsnTypeOdbc = 2 DsnTypeAdo = 3 )
const ( EncryptionOff = 0 EncryptionRequired = 1 EncryptionDisabled = 3 EncryptionStrict = 4 )
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 ¶
var ProtocolDialers map[string]ProtocolDialer = map[string]ProtocolDialer{}
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 }
func Parse ¶
func (Config) URL ¶
convert connectionParams to url style connection string used mostly for testing
type Encryption ¶
type Encryption int
type Log ¶
type Log uint64
const ( LogErrors Log = 1 LogMessages Log = 2 LogRows Log = 4 LogSQL Log = 8 LogParams Log = 16 LogTransaction Log = 32 LogDebug Log = 64 LogRetries Log = 128 )
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
Source Files ¶
conn_str.go conn_str_go112.go conn_str_go115.go conn_str_go118.go extensions.go
- Version
- v1.7.2
- Published
- May 30, 2024
- Platform
- windows/amd64
- Imports
- 14 packages
- Last checked
- 2 hours ago –
Tools for package owners.