Relay Docs
Access & governance

Database engines

The databases a connection can point at, what each one supports, and how clients log in through relay connect.

A connection has one engine. The agent speaks that database's own wire protocol, so your usual client works through relay connect.

Engineengine valueDefault port
PostgreSQLpostgres5432
MySQLmysql3306
MongoDBmongodb27017
SQL Serversqlserver1433
Oracleoracle1521
Valkey and Redisvalkey6379

Availability

The dashboard's engine picker shows PostgreSQL, plus Valkey / Redis, SQL Server and Oracle in organizations where each is enabled (the valkey, sqlserver and oracle feature flags). The server also refuses SQL Server and Oracle connections without their flag. MySQL and MongoDB connections are created with the CLI or Terraform.

In the Agent Edition:

  • The license decides which engines you can use. PostgreSQL is always included; the others need the mysql, mongodb, valkey, sqlserver or oracle license feature.
  • Turn the flags on with FEATURE_FLAGS_OVERRIDE on the server, for example FEATURE_FLAGS_OVERRIDE=sqlserver=on,oracle=on. Add valkey=on to show Valkey / Redis in the dashboard's engine picker.

What each engine supports

MaskingPolicies and risk scoringQuery approvalsRunbooks
PostgreSQLYesYesYesYes
MySQLYesYesYesYes
MongoDBYesYesYesYes
SQL ServerYesYesYesYes
Valkey and RedisYesYesYesNo
OracleYesNoNoNo

This table describes the current state. Engines are getting more support over time, and the page for each feature lists what it covers.

How clients log in

The client never sends the database password. The agent logs in to the database with the connection's user and credential, so whatever the client sends as a password is ignored or checked against a fixed value. relay connect prints the command to use for each engine:

EngineClient command
PostgreSQLpsql "postgresql://127.0.0.1:<port>"
MySQLmysql -h 127.0.0.1 -P <port>
MongoDBmongosh "mongodb://127.0.0.1:<port>"
SQL Serversqlcmd -S 127.0.0.1,<port> -U noop -P noop -C
Oraclesqlplus noop/noop@//127.0.0.1:<port>/<service>
Valkey and Redisvalkey-cli -h 127.0.0.1 -p <port>, or redis://127.0.0.1:<port>

SQL Server

Any login and password work: the agent replaces them with the connection's user and credential. The agent presents a self-signed certificate to the client unless the connection has its own TLS certificate, so the client must trust the server certificate (-C in sqlcmd, TrustServerCertificate=true in a connection string) or turn encryption off. Windows, Kerberos and Azure AD logins are not used: the agent always logs in with SQL authentication.

Oracle

Any username works, and the password must be noop. The agent checks that password and then logs in to the database with the connection's credentials. The connection's Database is the service name.

Valkey and Redis

One engine covers Valkey and Redis-compatible servers (Redis OSS, ElastiCache, MemoryDB), over RESP2 and RESP3. The client sends no AUTH: an AUTH from the client is answered OK without reaching the server. The connection's Database is a database number; leave it empty for database 0.

The agent works with a standalone server, a primary with replicas behind Sentinel, or a cluster. Clients always see a single standalone server: in cluster mode the agent routes each command to the node that owns its key, so clients do not need cluster support and never see redirects. A command whose keys belong to different hash slots still gets the cluster's CROSSSLOT error, so keep related keys under one {hash tag}. Commands that would reveal or change the deployment are refused with an error: replication, cluster and Sentinel commands, MONITOR, DEBUG, MIGRATE, MODULE, SHUTDOWN, the ACL commands that list or change users, and CLIENT REPLY OFF|SKIP.

Query audit records each command with its keys, never its values: SET k v is audited as SET k.

On this page