diff --git a/lib/client/db/dbcmd/dbcmd.go b/lib/client/db/dbcmd/dbcmd.go index f779da42f85f0..08f1811d19885 100644 --- a/lib/client/db/dbcmd/dbcmd.go +++ b/lib/client/db/dbcmd/dbcmd.go @@ -698,11 +698,15 @@ func (j *jdbcOracleThinConnection) ConnString() string { } func (c *CLICommandBuilder) getOracleCommand() (*exec.Cmd, error) { + tnsAdminPath := c.profile.OracleWalletDir(c.profile.Cluster, c.db.ServiceName) + if runtime.GOOS == constants.WindowsOS { + tnsAdminPath = strings.ReplaceAll(tnsAdminPath, `\`, `\\`) + } cs := jdbcOracleThinConnection{ host: c.host, port: c.port, db: c.db.Database, - tnsAdmin: c.profile.OracleWalletDir(c.profile.Cluster, c.db.ServiceName), + tnsAdmin: tnsAdminPath, } // Quote the address for printing as the address contains "?". connString := cs.ConnString() diff --git a/lib/client/db/oracle/oracle.go b/lib/client/db/oracle/oracle.go index b4ee6b108727f..2ad83ddba2c59 100644 --- a/lib/client/db/oracle/oracle.go +++ b/lib/client/db/oracle/oracle.go @@ -21,12 +21,15 @@ import ( "crypto/x509" "os" "path/filepath" + "runtime" + "strings" "time" "github.com/gravitational/trace" "github.com/pavlo-v-chernykh/keystore-go/v4" "github.com/gravitational/teleport" + "github.com/gravitational/teleport/api/constants" "github.com/gravitational/teleport/lib/client" "github.com/gravitational/teleport/lib/tlsca" "github.com/gravitational/teleport/lib/utils" @@ -56,6 +59,10 @@ func GenerateClientConfiguration(key *client.Key, db tlsca.RouteToDatabase, prof return trace.Wrap(err) } + if runtime.GOOS == constants.WindowsOS { + jksWalletPath = strings.ReplaceAll(jksWalletPath, `\`, `\\`) + } + err = writeClientConfig(walletPath, jksWalletPath, password) if err != nil { return trace.Wrap(err)