在 Node.js 中隐藏 Oracle 数据库凭据
Hide OracleDatabase credentials in Node.js
我正在使用可以找到的示例函数连接到外部 Oracle 数据库 here
const oracledb = require('oracledb');
const connection = await oracledb.getConnection(
{
user : "hr",
password : mypw, // mypw contains the hr schema password
connectString : "mydbmachine.example.com/orclpdb1"
}
);
因此,如您所见,我的凭据将 'exposed' 提供给所有可以访问代码(可能是 github 存储库或其他东西)的人。
有什么方法可以隐藏我的用户名和密码或使它们保密,或者我不应该担心它?
注意:我使用的是 oracledb 节点模块
将您的数据库机密存储在 Secrets Manager or Parameter Store 中并让您的应用程序在运行时读取它们。请务必更新您的应用程序使用的 IAM 角色,以便它具有检索凭据的 IAM 权限。
注意:对于 certain databases,Secrets Manager 支持 auto-rotation 个凭据。
您可以使用 .env,并通过 process.env 访问它。
在此处查看:https://nodejs.org/dist/latest-v8.x/docs/api/process.html#process_process_env
选项包括:
运行时提示输入密码
在环境变量中传递密码
使用 kerberos,然后使用 'external' authentication in node-oracledb. All this is configured and enabled in code layers below node-oracledb, see the Oracle Database Security Guide。
使用 Oracle Wallet,然后在 node-oracledb 中使用 'external' 身份验证。
我正在使用可以找到的示例函数连接到外部 Oracle 数据库 here
const oracledb = require('oracledb');
const connection = await oracledb.getConnection(
{
user : "hr",
password : mypw, // mypw contains the hr schema password
connectString : "mydbmachine.example.com/orclpdb1"
}
);
因此,如您所见,我的凭据将 'exposed' 提供给所有可以访问代码(可能是 github 存储库或其他东西)的人。
有什么方法可以隐藏我的用户名和密码或使它们保密,或者我不应该担心它?
注意:我使用的是 oracledb 节点模块
将您的数据库机密存储在 Secrets Manager or Parameter Store 中并让您的应用程序在运行时读取它们。请务必更新您的应用程序使用的 IAM 角色,以便它具有检索凭据的 IAM 权限。
注意:对于 certain databases,Secrets Manager 支持 auto-rotation 个凭据。
您可以使用 .env,并通过 process.env 访问它。
在此处查看:https://nodejs.org/dist/latest-v8.x/docs/api/process.html#process_process_env
选项包括:
运行时提示输入密码
在环境变量中传递密码
使用 kerberos,然后使用 'external' authentication in node-oracledb. All this is configured and enabled in code layers below node-oracledb, see the Oracle Database Security Guide。
使用 Oracle Wallet,然后在 node-oracledb 中使用 'external' 身份验证。