orcaledb用于具有模拟功能的nodejs

时间:2018-10-05 06:15:44

标签: node.js oracledb oracledb-npm

实际上是在寻找我正在做的事情的技术解释。不是orcaldb的Nodejs专家。 我有一个与Expressjs一起用作API的nodejs应用程序,与数据库的连接是通过orcaledb单连接完成的,但是我正在使用用户模拟来使连接能够获得Oracle中的用户特权。

 oracledb.getConnection({
        user: dbConfig.user + ((user_Id === '') ? '' : '[' + user_Id + ']'),
        password: dbConfig.password,
        connectString: dbConfig.connectString
    }

问的是什么; 以这种方式使用连接的行为就像“池连接”一样,即每次更改用户或其单个连接时都会更改用户。主用户已获得子用户的授予访问权限。主用户[子用户]。 任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

  

但是我使用用户模拟来使连接能够获得Oracle中的用户特权

您所使用的功能的术语是“代理身份验证”。

  

以这种方式使用连接的行为就像是池连接,即每次都更改用户或其单个连接。

它仍然是单个连接。这两个功能是不同的:连接池和代理身份验证。您可以单独使用一个,也可以同时使用两个。

该池背后的想法是减少与创建新连接(新进程,内存分配等)相关的开销。由于您正在使用Express Web服务器,因此有可能要创建一个多用户应用程序。这就是可以从连接池中受益的应用程序类型(例如,与每小时运行一次的作业相反)。

代理身份验证有多种用途,但主要用途之一是身份保存。换句话说,您可以以最终用户的身份代理连接,而不必以单个普通用户身份连接。这样可以更好地与安全功能(例如角色和审核)集成。

要结合使用这两种方法,请参见Pool Proxy Authentication上的文档部分。