如何创建shell脚本以登录oracle数据库并运行存储过程

时间:2012-03-27 10:50:16

标签: shell unix

我正在尝试创建一个UNIX命令,但我不知道该怎么做。

我想要关键字,我可以从提示中的任何位置运行,就像PWD,CD等将从Unix shell脚本登录到Oracle数据库以在数据库中运行过程。

我最大的问题是我想在我的shell脚本中隐藏数据库登录信息..

我尝试创建一个shell脚本,其中包含一行代码。

sqlplus user_name /passwod@database_name

现在我想将其转换为已编译的代码,以便其他用户无法以明文形式读取我的登录信息。

我如何在unix系统上执行此操作?

3 个答案:

答案 0 :(得分:3)

您可以使用shc (shell script compiler)为脚本创建二进制文件。

$shc -f myscript.sh

这将创建一个名为myscript.sh.x的二进制文件,它将执行您所期望的操作(隐藏登录)。但你必须重新编译&每次更改密码或用户名时都会创建二进制文件。

如果你想让它在任何地方都可用,那么只需将它添加到你的PATH变量:

$export PATH=$PATH:/your/binary/location/

答案 1 :(得分:2)

我会考虑使用Oracle Wallet,而不是混淆......

答案 2 :(得分:1)

听起来你想开发一个脚本来使用密码登录数据库并运行一些命令而无需用户交互如果脚本在共享计算机,您的选项归结为使用纯文本密码创建脚本,但只能为您阅读(chmod 700 file.sh)。使用加密/混淆密码创建脚本不是更安全 - 对该脚本具有读取权限的人只能复制该命令。

您还可以启用无密码登录:

  • SSH-style,即使用允许在服务器上运行没有密码的查询的用户登录数据库服务器
  • 其他一些特权转发
  • 白名单主持人