From 755781bca603e2f0bf60e46a979ad3290c71ea03 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 14 Jul 2022 14:03:50 +0200 Subject: [PATCH] trust server certificate option #305 --- packages/web/src/settings/ConnectionDriverFields.svelte | 4 ++++ plugins/dbgate-plugin-mssql/src/backend/tediousDriver.js | 3 ++- plugins/dbgate-plugin-mssql/src/frontend/driver.js | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/web/src/settings/ConnectionDriverFields.svelte b/packages/web/src/settings/ConnectionDriverFields.svelte index 6d01b00a7..cc5b04d77 100644 --- a/packages/web/src/settings/ConnectionDriverFields.svelte +++ b/packages/web/src/settings/ConnectionDriverFields.svelte @@ -168,6 +168,10 @@ {/if} +{#if driver?.showConnectionField('trustServerCertificate', $values)} + +{/if} + {#if driver?.showConnectionField('defaultDatabase', $values)} {/if} diff --git a/plugins/dbgate-plugin-mssql/src/backend/tediousDriver.js b/plugins/dbgate-plugin-mssql/src/backend/tediousDriver.js index e65bbe5db..67f6a4ed6 100644 --- a/plugins/dbgate-plugin-mssql/src/backend/tediousDriver.js +++ b/plugins/dbgate-plugin-mssql/src/backend/tediousDriver.js @@ -22,7 +22,7 @@ function extractTediousColumns(columns, addDriverNativeColumn = false) { return res; } -async function tediousConnect({ server, port, user, password, database, ssl }) { +async function tediousConnect({ server, port, user, password, database, ssl, trustServerCertificate }) { return new Promise((resolve, reject) => { const connectionOptions = { encrypt: !!ssl, @@ -32,6 +32,7 @@ async function tediousConnect({ server, port, user, password, database, ssl }) { validateBulkLoadParameters: false, requestTimeout: 1000 * 3600, port: port ? parseInt(port) : undefined, + trustServerCertificate: !!trustServerCertificate, }; if (database) { diff --git a/plugins/dbgate-plugin-mssql/src/frontend/driver.js b/plugins/dbgate-plugin-mssql/src/frontend/driver.js index feca80c93..f696916cc 100644 --- a/plugins/dbgate-plugin-mssql/src/frontend/driver.js +++ b/plugins/dbgate-plugin-mssql/src/frontend/driver.js @@ -126,7 +126,8 @@ const driver = { showConnectionField: (field, values) => ['authType', 'server', 'port', 'user', 'password', 'defaultDatabase', 'singleDatabase', 'isReadOnly'].includes( field - ), + ) || + (field == 'trustServerCertificate' && values.authType != 'sql' && values.authType != 'sspi'), getQuerySplitterOptions: () => mssqlSplitterOptions, engine: 'mssql@dbgate-plugin-mssql',