Я пытаюсь подключиться к базе данных оракула, которая использует SSH и ключ .pem для подключения. До сих пор я пробовал много вещей, и единственный способ подключиться к нему - использовать PUTTY (локально для обработки SSH-туннелирования и включая ключ pem) для подключения.
Это хорошо для целей разработки, но когда я хочу развернуть приложение в каком-то месте и получить данные, будет проблема. Есть ли способ подключиться к нему, используя строку дескриптора подключения, которая включает в себя исходный адрес и адрес прокси, который используется для подключения.
В настоящее время моя конфигурация:
USER: process.env.BANNER_USER || 'username',
PASSWORD: process.env.BANNER_PASSWORD || 'the_password',
CONNECTION_STRING: process.env.BANNER_CONNECTION_STRING || '(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST = localhost)(PORT = <port>))(CONNECT_DATA =(SID = <sid>)))',
И вот где я называю мои вышеуказанные переменные конфигурации:
async createPool() {
return await oracle.createPool({
user: config.BANNER_CONNECTION.USER,
password: config.BANNER_CONNECTION.PASSWORD,
connectionString: config.BANNER_CONNECTION.CONNECTION_STRING,
poolIncrement: config.BANNER_CONNECTION.POOL_INCREMENT,
poolMax: config.BANNER_CONNECTION.POOL_MAX,
poolMin: config.BANNER_CONNECTION.POOL_MIN,
outFormat: config.BANNER_CONNECTION.OUT_FORMAT
});
},
async bannerConn() {
try {
const connection = await this.createPool();
return await connection.getConnection();
}
catch(e) { return e }
},
Вышеуказанная конфигурация плюс включение ключа PEM в PUTTY идобавление переадресации портов SSH туннелирование работает нормально, как показано в этой статье .
Любая помощь будет принята с благодарностью.