Javascript 使用OracleDB更改Knex.js上的权限?
我试图将knex.js与oracledb一起使用,但每次查询都会出现以下错误:Javascript 使用OracleDB更改Knex.js上的权限?,javascript,node.js,oracle,knex.js,node-oracledb,Javascript,Node.js,Oracle,Knex.js,Node Oracledb,我试图将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配置: cons
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
})
提前感谢您对此事的任何帮助。问题与用户“sys”的使用有关,我刚刚创建了一个具有正确权限的新用户,它工作正常。尝试像这样使用它:
权限:“SYSDBA”,…dbconfig
原因错误说明它应该是SYSDBA
或SYSOPER
-似乎oracledb
对象没有SYSDBA
字段。感谢您的回复,oracledb确实有SYSDBA,实际上您可以在使用oracledb.getConnection({privilege:oracledb.SYSDBA})时传递它但我不知道如何将它传递给Knex.js。顺便说一句,我已经找到了解决问题的方法,只是在数据库中添加了一个新用户,并停止使用sys。