我需要使用云钱包将我的 Node.js + Sequelize 应用程序连接到安全数据库 目前我有一个 .zip 文件,其中包含:
我尝试从 SQLDevelopper 客户端使用 zip 文件进行连接,它有效,但现在我需要从 NodeJS + Sequelize 进行连接
这就是我尝试做的事情
const fs = require('fs');
const Sequelize = require('sequelize');
const _sequelize = new Sequelize(config.database.servicename, config.database.username, config.database.password, {
host: config.database.address,
port: config.database.port,
dialect: config.database.dialect,
logging: false,
dialectOptions: {
ssl: {
ca: fs.readFileSync(__dirname + '/../../company-certificate.crt')
}
}
});
_sequelize.authenticate().then(() => {
console.log('Connection to DB : [OK]');
}).catch((error) => {
console.error('Connection to DB : [KO]');
});
module.exports = _sequelize;
这是连接器返回的错误: “原文:错误:NJS-500:与 Oracle 数据库的连接已断开”
sequelize 的 oracle 方言不支持
ssl
和 dialectOptions
。
您可以在 connectString
中使用 dialectOptions
选项。$TNS_ADMIN
环境变量设置为您的钱包位置。const _sequelize = new Sequelize({
dialect: config.database.dialect,
username: config.database.username,
password: config.database.password,
dialectOptions: {
connectString: <alias_from_tnsnames.ora>
}
});
检查tnsnames.ora安全部分根据您的需要配置您的别名。