从NodeJS Web 应用程序连接到“Oracle 19c”版本时,只能使用设置“privilege: oracledb.SYSDBA”。如果没有设置 NodeJS Web 应用程序会抛出错误“状态:失败 - 测试失败:ORA-01017:用户名/密码无效;登录被拒绝”。
//KP : NodeJS Oracle19c DB Connection
// // This example uses Node 8's async/await syntax.
const oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
const mypw = "myorapassword"; // set mypw to the hr schema password
async function run() {
let connection;
try {
connection = await oracledb.getConnection(
{
user : "SYS as SYSDBA",
password : myorapassword,
privilege : oracledb.SYSDBA,
connectionString: `(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=localhost)
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
(SERVER=DEDICATED)
)
)`
}
);
console.log('KP : Oracle & NodeJS Connection was Successful!');
const result = await connection.execute(
"Select name, open_mode, cdb from v$database"
);
console.log(result.rows);
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
run();