sqlserver

package
v1.3.3-0...-f31c912 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 9, 2024 License: AGPL-3.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ResourceIDDSNKey represents the resource ID DSN parameter key. This value
	// is defined by the go-mssqldb library.
	ResourceIDDSNKey = "resource id"
	// FederatedAuthDSNKey represents the federated auth DSN parameter key. This
	// value is defined by the go-mssqldb library.
	FederatedAuthDSNKey = "fedauth"
)

Variables

This section is empty.

Functions

func MakeTestClient

func MakeTestClient(ctx context.Context, config common.TestClientConfig) (*mssql.Conn, error)

MakeTestClient returns SQL Server client used in tests.

func NewEngine

func NewEngine(ec common.EngineConfig) common.Engine

NewEngine create new SQL Server engine.

Types

type Connector

type Connector interface {
	Connect(context.Context, *common.Session, *protocol.Login7Packet) (io.ReadWriteCloser, []mssql.Token, error)
}

Connector defines an interface for connecting to a SQL Server so it can be swapped out in tests.

type Engine

type Engine struct {
	// EngineConfig is the common database engine configuration.
	common.EngineConfig
	// Connector allows to override SQL Server connection logic. Used in tests.
	Connector Connector
	// contains filtered or unexported fields
}

Engine handles connections from SQL Server clients coming from Teleport proxy over reverse tunnel.

func (*Engine) HandleConnection

func (e *Engine) HandleConnection(ctx context.Context, sessionCtx *common.Session) error

HandleConnection authorizes the incoming client connection, connects to the target SQL Server server and starts proxying messages between client/server.

func (*Engine) InitializeConnection

func (e *Engine) InitializeConnection(clientConn net.Conn, _ *common.Session) error

InitializeConnection initializes the client connection.

func (*Engine) SendError

func (e *Engine) SendError(err error)

SendError sends an error to SQL Server client.

type Proxy

type Proxy struct {
	// Middleware is the auth middleware.
	Middleware *auth.Middleware
	// Service is used to connect to a remote database service.
	Service common.Service
	// Log is used for logging.
	Log logrus.FieldLogger
}

Proxy accepts connections from SQL Server clients, performs a Pre-Login handshake and then forwards the connection to the database service agent.

func (*Proxy) HandleConnection

func (p *Proxy) HandleConnection(ctx context.Context, proxyCtx *common.ProxyContext, conn net.Conn) error

HandleConnection accepts connection from a SQL Server client, authenticates it and proxies it to an appropriate database service.

type TestConnector

type TestConnector struct{}

TestConnector is used in tests to mock connections to SQL Server.

func (*TestConnector) Connect

func (c *TestConnector) Connect(ctx context.Context, sessionCtx *common.Session, loginPacket *protocol.Login7Packet) (io.ReadWriteCloser, []mssql.Token, error)

Connect simulates successful connection to a SQL Server.

type TestServer

type TestServer struct {
	// contains filtered or unexported fields
}

TestServer is a test MSServer server used in functional database access tests.

func NewTestServer

func NewTestServer(config common.TestServerConfig) (svr *TestServer, err error)

NewTestServer returns a new instance of a test MSServer.

func (*TestServer) Close

func (s *TestServer) Close() error

Close closes the server listener.

func (*TestServer) Port

func (s *TestServer) Port() string

Port returns SQL Server port.

func (*TestServer) Serve

func (s *TestServer) Serve() error

Serve starts serving client connections.

Directories

Path Synopsis
Package kinit provides utilities for interacting with a KDC (Key Distribution Center) for Kerberos5
Package kinit provides utilities for interacting with a KDC (Key Distribution Center) for Kerberos5

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL