mirror of
https://github.com/dbgate/dbgate
synced 2024-11-07 20:26:23 +00:00
Merge branch 'master' into develop
This commit is contained in:
commit
84832472a2
@ -107,6 +107,6 @@
|
|||||||
"electron-builder": "22.10.5"
|
"electron-builder": "22.10.5"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"msnodesqlv8": "^2.0.10"
|
"msnodesqlv8": "^2.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "4.4.0-alpha.1",
|
"version": "4.3.4-beta.4",
|
||||||
"name": "dbgate-all",
|
"name": "dbgate-all",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*",
|
"packages/*",
|
||||||
|
@ -71,6 +71,6 @@
|
|||||||
"webpack-cli": "^3.3.11"
|
"webpack-cli": "^3.3.11"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"msnodesqlv8": "^2.0.10"
|
"msnodesqlv8": "^2.4.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
packages/types/engines.d.ts
vendored
1
packages/types/engines.d.ts
vendored
@ -47,6 +47,7 @@ export interface EngineDriver {
|
|||||||
showConnectionTab?: (tab: 'ssl' | 'sshTunnel', values: any) => boolean;
|
showConnectionTab?: (tab: 'ssl' | 'sshTunnel', values: any) => boolean;
|
||||||
beforeConnectionSave?: (values: any) => any;
|
beforeConnectionSave?: (values: any) => any;
|
||||||
databaseUrlPlaceholder?: string;
|
databaseUrlPlaceholder?: string;
|
||||||
|
defaultAuthTypeName?: string;
|
||||||
connect({ server, port, user, password, database }): Promise<any>;
|
connect({ server, port, user, password, database }): Promise<any>;
|
||||||
close(pool): Promise<any>;
|
close(pool): Promise<any>;
|
||||||
query(pool: any, sql: string, options?: QueryOptions): Promise<QueryResult>;
|
query(pool: any, sql: string, options?: QueryOptions): Promise<QueryResult>;
|
||||||
|
@ -65,6 +65,8 @@
|
|||||||
<FormSelectField
|
<FormSelectField
|
||||||
label="Authentication"
|
label="Authentication"
|
||||||
name="authType"
|
name="authType"
|
||||||
|
isNative
|
||||||
|
defaultValue={driver?.defaultAuthTypeName}
|
||||||
options={$authTypes.map(auth => ({
|
options={$authTypes.map(auth => ({
|
||||||
value: auth.name,
|
value: auth.name,
|
||||||
label: auth.title,
|
label: auth.title,
|
||||||
|
@ -41,7 +41,7 @@ const windowsAuthTypes = [
|
|||||||
disabledFields: ['port'],
|
disabledFields: ['port'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Tedious driver',
|
title: 'NodeJs portable driver (tedious)',
|
||||||
name: 'tedious',
|
name: 'tedious',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
@ -43,22 +43,43 @@ function extractNativeColumns(meta) {
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function nativeConnect({ server, port, user, password, database, authType }) {
|
async function connectWithDriver({ server, port, user, password, database, authType }, driver) {
|
||||||
let connectionString = `server=${server}`;
|
let connectionString = `server=${server}`;
|
||||||
if (port && !server.includes('\\')) connectionString += `,${port}`;
|
if (port && !server.includes('\\')) connectionString += `,${port}`;
|
||||||
connectionString += ';Driver={SQL Server Native Client 11.0}';
|
connectionString += `;Driver={${driver}}`;
|
||||||
if (authType == 'sspi') connectionString += ';Trusted_Connection=Yes';
|
if (authType == 'sspi') connectionString += ';Trusted_Connection=Yes';
|
||||||
else connectionString += `;UID=${user};PWD=${password}`;
|
else connectionString += `;UID=${user};PWD=${password}`;
|
||||||
if (database) connectionString += `;Database=${database}`;
|
if (database) connectionString += `;Database=${database}`;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
msnodesqlv8.open(connectionString, (err, conn) => {
|
msnodesqlv8.open(connectionString, (err, conn) => {
|
||||||
if (err) reject(err);
|
if (err) {
|
||||||
conn._connectionType = 'msnodesqlv8';
|
reject(err);
|
||||||
resolve(conn);
|
} else {
|
||||||
|
conn._connectionType = 'msnodesqlv8';
|
||||||
|
resolve(conn);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function nativeConnect(connection) {
|
||||||
|
const drivers = ['ODBC Driver 17 for SQL Server', 'SQL Server Native Client 11.0'];
|
||||||
|
|
||||||
|
for (let i = 0; i < drivers.length; i += 1) {
|
||||||
|
try {
|
||||||
|
const res = await connectWithDriver(connection, drivers[i]);
|
||||||
|
console.error(`Connected SQL Server with ${drivers[i]} driver`);
|
||||||
|
return res;
|
||||||
|
} catch (err) {
|
||||||
|
if (err.message && err.message.includes('[ODBC Driver Manager]') && i < drivers.length - 1) {
|
||||||
|
console.error(`Failed connecting with ${drivers[i]} driver, trying next`, err);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
throw new Error(`${err}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function nativeQueryCore(pool, sql, options) {
|
async function nativeQueryCore(pool, sql, options) {
|
||||||
if (sql == null) {
|
if (sql == null) {
|
||||||
return Promise.resolve({
|
return Promise.resolve({
|
||||||
|
@ -59,6 +59,7 @@ const driver = {
|
|||||||
engine: 'mssql@dbgate-plugin-mssql',
|
engine: 'mssql@dbgate-plugin-mssql',
|
||||||
title: 'Microsoft SQL Server',
|
title: 'Microsoft SQL Server',
|
||||||
defaultPort: 1433,
|
defaultPort: 1433,
|
||||||
|
defaultAuthTypeName: 'tedious',
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = driver;
|
module.exports = driver;
|
||||||
|
58
yarn.lock
58
yarn.lock
@ -7356,13 +7356,14 @@ ms@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||||
|
|
||||||
msnodesqlv8@^2.0.10:
|
msnodesqlv8@^2.4.0:
|
||||||
version "2.0.10"
|
version "2.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/msnodesqlv8/-/msnodesqlv8-2.0.10.tgz#47d05157c2d30e5f48fa0aa550a0353ab56a027c"
|
resolved "https://registry.yarnpkg.com/msnodesqlv8/-/msnodesqlv8-2.4.0.tgz#7815b965655a5ccb0635f2f48476b5d6d49e3343"
|
||||||
integrity sha512-oA46Y8ZQxYEW9M8U+Wg4bI5g8nI2pueIkyameEpxanHqr9d5w4a0Pgk2WvugHiY1UYmN1bPziUdqBgwkBSGrnA==
|
integrity sha512-CYecwSZS86jE1Nr7sO/cWWfmeg5F+hhFbs8gABGqOsiLWWoylFrOiPfcV3Z4jgDcVWIV6pF2eiBCE/b8KriypA==
|
||||||
dependencies:
|
dependencies:
|
||||||
nan "^2.14.2"
|
nan "^2.14.2"
|
||||||
prebuild-install "^6.0.0"
|
node-abi "^2.30.0"
|
||||||
|
prebuild-install "^6.1.2"
|
||||||
|
|
||||||
mute-stream@0.0.8:
|
mute-stream@0.0.8:
|
||||||
version "0.0.8"
|
version "0.0.8"
|
||||||
@ -7477,6 +7478,13 @@ node-abi@^2.21.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
semver "^5.4.1"
|
semver "^5.4.1"
|
||||||
|
|
||||||
|
node-abi@^2.30.0:
|
||||||
|
version "2.30.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
|
||||||
|
integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
|
||||||
|
dependencies:
|
||||||
|
semver "^5.4.1"
|
||||||
|
|
||||||
node-abi@^2.7.0:
|
node-abi@^2.7.0:
|
||||||
version "2.19.3"
|
version "2.19.3"
|
||||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d"
|
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.3.tgz#252f5dcab12dad1b5503b2d27eddd4733930282d"
|
||||||
@ -8378,27 +8386,6 @@ prebuild-install@6.0.1:
|
|||||||
tunnel-agent "^0.6.0"
|
tunnel-agent "^0.6.0"
|
||||||
which-pm-runs "^1.0.0"
|
which-pm-runs "^1.0.0"
|
||||||
|
|
||||||
prebuild-install@^6.0.0:
|
|
||||||
version "6.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.0.tgz#669022bcde57c710a869e39c5ca6bf9cd207f316"
|
|
||||||
integrity sha512-h2ZJ1PXHKWZpp1caLw0oX9sagVpL2YTk+ZwInQbQ3QqNd4J03O6MpFNmMTJlkfgPENWqe5kP0WjQLqz5OjLfsw==
|
|
||||||
dependencies:
|
|
||||||
detect-libc "^1.0.3"
|
|
||||||
expand-template "^2.0.3"
|
|
||||||
github-from-package "0.0.0"
|
|
||||||
minimist "^1.2.3"
|
|
||||||
mkdirp-classic "^0.5.3"
|
|
||||||
napi-build-utils "^1.0.1"
|
|
||||||
node-abi "^2.7.0"
|
|
||||||
noop-logger "^0.1.1"
|
|
||||||
npmlog "^4.0.1"
|
|
||||||
pump "^3.0.0"
|
|
||||||
rc "^1.2.7"
|
|
||||||
simple-get "^3.0.3"
|
|
||||||
tar-fs "^2.0.0"
|
|
||||||
tunnel-agent "^0.6.0"
|
|
||||||
which-pm-runs "^1.0.0"
|
|
||||||
|
|
||||||
prebuild-install@^6.0.1:
|
prebuild-install@^6.0.1:
|
||||||
version "6.1.2"
|
version "6.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.2.tgz#6ce5fc5978feba5d3cbffedca0682b136a0b5bff"
|
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.2.tgz#6ce5fc5978feba5d3cbffedca0682b136a0b5bff"
|
||||||
@ -8419,6 +8406,25 @@ prebuild-install@^6.0.1:
|
|||||||
tar-fs "^2.0.0"
|
tar-fs "^2.0.0"
|
||||||
tunnel-agent "^0.6.0"
|
tunnel-agent "^0.6.0"
|
||||||
|
|
||||||
|
prebuild-install@^6.1.2:
|
||||||
|
version "6.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f"
|
||||||
|
integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==
|
||||||
|
dependencies:
|
||||||
|
detect-libc "^1.0.3"
|
||||||
|
expand-template "^2.0.3"
|
||||||
|
github-from-package "0.0.0"
|
||||||
|
minimist "^1.2.3"
|
||||||
|
mkdirp-classic "^0.5.3"
|
||||||
|
napi-build-utils "^1.0.1"
|
||||||
|
node-abi "^2.21.0"
|
||||||
|
npmlog "^4.0.1"
|
||||||
|
pump "^3.0.0"
|
||||||
|
rc "^1.2.7"
|
||||||
|
simple-get "^3.0.3"
|
||||||
|
tar-fs "^2.0.0"
|
||||||
|
tunnel-agent "^0.6.0"
|
||||||
|
|
||||||
prelude-ls@~1.1.2:
|
prelude-ls@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||||
|
Loading…
Reference in New Issue
Block a user