如何从脚本中使用 Oracle 的工具?

如何从脚本中使用 Oracle 的工具?

大多数 Oracle 工具和脚本都要求您通过命令行向其传递密码 - 同一台计算机上的每个人都可以看到它们。例如:

exp <user>/<password> ...

有没有办法从脚本调用这些命令(如sqlplus,,imp)而不损害安全性?exp

答案1

对于 imp 和 exp,您可以在文件中提供参数。您可以在文件系统中更改此文件的权限,使其仅由您选择的人员可读。查看 PARFILE 命令行选项的文档。您想要包含在 PARFILE 中的选项是 USERID 选项。

对于 SQLPLUS,您可以指定 /nolog 选项并提供连接命令作为您正在执行的 sql 脚本的第一行。

sqlplus /nolog @myscript.sql

然后在 myscript.sql 中:

connect user/pass@tnsname
...

对于 SQLPlus,我通常建议创建一个文件或使用“此处”文档,这样您就可以保护用户名/密码不被 Unix/Linux 中的“ps -ef”命令查看。如果用户名/密码包含在脚本文件或 sql 文件中,您可以使用适当的用户/组读取权限进行保护。然后,您可以在 shell 脚本中将用户/密码保留在文件中,如下所示:

sqlplus -s /nolog <<EOF 
connect user/pass 
select blah from blah; 
quit 
EOF 

答案2

您可以使用“外部识别”在操作系统级别完成身份验证。

看: 高级安全管理员指南

了解详情。

相关内容