【发布时间】:2020-11-23 03:54:47
【问题描述】:
我正在尝试将 knex.js 与 oracledb 一起使用,但在每个查询中我都会收到以下错误:
Error: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
{
errorNum: 28009,
offset: 0,
originalStack: 'Error: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER'
}
这是我的 Knex.js 配置:
const dbconfig = {
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
connectString: process.env.DB_LINK
}
const knex = require('knex')({
client: 'oracledb',
native: false,
connection: { privilege: oracledb.SYSDBA, ...dbconfig },
fetchAsString: [ 'number', 'clob' ],
asyncStackTraces: true,
acquireConnectionTimeout: 10000
})
提前感谢您对此事的任何帮助。
【问题讨论】:
-
尝试像这样使用它:
privilege: 'SYSDBA', ...dbconfig导致错误提示它应该是SYSDBA或SYSOPER- 似乎oracledb对象没有SYSDBA字段。 -
感谢您的回复,oracledb确实有SYSDBA,其实在使用oracledb.getConnection({privilege: oracledb.SYSDBA})的时候可以传,但是不知道怎么传给Knex。 js。顺便说一句,我找到了解决问题的方法,只是在数据库中添加了一个新用户并停止使用 sys。
标签: javascript node.js oracle knex.js node-oracledb