【问题标题】:Change privilege on Knex.js with OracleDB?使用 OracleDB 更改 Knex.js 的权限?
【发布时间】: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 导致错误提示它应该是 SYSDBASYSOPER - 似乎 oracledb 对象没有 SYSDBA 字段。
  • 感谢您的回复,oracledb确实有SYSDBA,其实在使用oracledb.getConnection({privilege: oracledb.SYSDBA})的时候可以传,但是不知道怎么传给Knex。 js。顺便说一句,我找到了解决问题的方法,只是在数据库中添加了一个新用户并停止使用 sys。

标签: javascript node.js oracle knex.js node-oracledb


【解决方案1】:

问题与使用用户“sys”有关,我刚刚创建了一个具有正确权限的新用户,它工作正常。

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2016-02-10
    相关资源
    最近更新 更多