2012-03-27 14 views
0

我想创建一个UNIX命令,但我不知道该怎么做。如何创建一个shell脚本来登录到oracle数据库并运行存储过程

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

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

我试图以创建具有如下一行shell脚本..

sqlplus user_name /[email protected]_name

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

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

+0

不知道为什么这个问题被否决.. 请给出理由还有,如果你投票down .. – 2012-03-27 11:25:50

+1

编辑问题并告诉我们你已经尝试了什么。 – 2012-03-27 11:46:30

回答

1

听起来就像你想开发一个脚本到用密码登录到数据库并运行一些命令没有用户交互如果脚本位于共享机器上,您的选项归结为使用纯文本密码创建脚本,但只能为您读取(chmod 700 file.sh)。使用创建脚本加密/模糊处理的密码不是更安全 - 读取脚本的人可以复制该命令。

您还可以启用密码登录:

  • SSH-style,就是登录到与被允许不用密码服务器
  • 其他一些在运行查询用户数据库服务器特权转发
  • 白名单主机
3

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

$shc -f myscript.sh 

这将创建一个名为二进制:myscript.sh.x将你期待什么(隐藏登录)。但是,每次更改密码或用户名时,必须重新编译&创建二进制文件。

如果你希望把它随处可见,然后只需将其添加到您的PATH变量:

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

是否有可能通过脚本执行并在配置文件中设置此导出命令? – 2012-03-27 13:46:54

+0

您可以将该行添加到您的主目录中的.profile或.bash_rc或.bash_profile(取决于您的shell)。个人资料是用户特定的,所以你不必担心在那里。只要没有其他人可以保存二进制文件的位置,就不必担心这一点。 – 2012-03-27 13:54:43

+0

没有这种类型的设置,我必须给脚本.. 配置文件夹是否我必须从任何系统变量的文件夹路径..或者它是否静态在文件夹中,我可以打开并追加.profile文件? – 2012-03-27 15:14:00

相关问题