2012-03-27 45 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

相關問題