据我所知,在数据库的 Control-M 中。它纯粹运行与 SQL 语句一样有效的查询/语句。然而,我使用的 SQLLDR 是一个独立的 cli 工具,用于将数据(.csv)导入到 oracledb 表。
所以,我已经将数据(.csv)导入到我的oracle数据库(表)中。但是,在操作系统命令(使用 sqlldr)中,我的凭据被公开,在操作系统命令中,它看起来像这样。
“sqlldr 用户名/密码@smthng”
有没有办法使用数据库的 Control-M 或操作系统命令(使用 sqlldr)成功实现此导入(.csv 数据)作业,而不暴露凭据?
ps:我目前刚刚学习。所以,环境也是为了测试,但我想实践最佳实践。我也愿意接受任何其他想法来改进我当前的方法。
我不能代表 Control-M,但是使用 SQL*Loader,您可以选择将任何命令行参数放入参数文件中。您可以将您的凭据放在那里,这样它们就不会显示在命令行上,并且任何执行操作的人都看不到它们
ps
:
myparam.par 内容:
userid=myuser/mypass@"myTNSstring"
mycontrol.ctl内容:
LOAD APPEND ... [whatever]
命令行:
sqlldr parfile=myparam.par control=mycontrol.ctl
您可以为多个作业重复使用相同的参数文件,并且仅改变每个作业的控制文件。只需确保参数文件只能由所有者读取(例如 Unix 中的
chmod 600
),这样您就不会向未使用您的凭据登录的任何人公开密码。