Documentation
¶
Index ¶
Constants ¶
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 ¶
MakeTestClient returns SQL Server client used in tests.
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 ¶
HandleConnection authorizes the incoming client connection, connects to the target SQL Server server and starts proxying messages between client/server.
func (*Engine) InitializeConnection ¶
InitializeConnection initializes the client connection.
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) Serve ¶
func (s *TestServer) Serve() error
Serve starts serving client connections.