隐藏oracle数据库,如何隐藏Oracle密码
當你有兩個或兩個以上Oracle數據庫時,可能要求你指出你想登陸的數據庫名稱。如果你使用的SQL*Plus,你需要在同一數據庫里(db1是數據庫名)說明三個登錄參量(用戶名、密碼和db_name),如下:
>>?sqlplus?scott/tiger@db1
這存在著安全風險。為了隱藏密碼(只顯示星號通配符),你可以輸入以下指令:
>>sqlplus?scott@db1
輸入以上指令后按ENTER鍵,要求你輸入密碼。輸入密碼后,星號通配符(*)就代替了以前你輸入的字符,這就是Oracleto通常處理密碼的方法。事實上,你是將密碼隱藏了……
我已經在Oracle8企業修訂版8.0.5.0.0和Oracle Server 7.3.4.0.0版本中測試了這一技巧。
讀者反饋:
Michael P.:它在8.0.5.以上的版本上運行得很好。但是SQL*PLUS在其他腳本里運行得怎樣呢?在這種情況下,我該怎樣隱藏密碼呢?
Hing M:要從OS腳本中調用SQL*Plus,目前我發現隱藏密碼的唯一方法就是不使用密碼,而是連接internal.。很顯然這一方法有局限性,因為你必須從當地服務器開始連接。這種方法出現的問題是輸出和輸出不接受userid=internal。那么這種情況下有沒有隱藏密碼的其他竅門呢?
Phillip D:我多年都在使用hideargs覆蓋隱藏指令密碼。要了解更多的信息,你可以查看:
我經常使用OS配置驗證遞規背景,而不是將密碼保留在腳本里面。
作者:是的,SQL*Plus在腳本里和密碼是和密碼一起發出的指令。我一點也不知道如何在腳本里面隱藏密碼。然而,一個工作區(如我們在Unix的環境下進行操作)就是在腳本上對相關的用戶發出指令。
Denis D:假定是Unix環境,使用SQL*Plus還可以用下面的方法:
sqlplus?/nolog?<
connect?usr/pass@somewhere
rem?put?any?commands?inline:
select?sysdate?from?dual;
@my_batch_program
quit
EOF
以上操作針對Oracle8 用戶。對于舊版本,可以進行如下操作:
sqlplus??<
usr/pass@somewhere
rem?put?any?commands?inline:
select?sysdate?from?dual;
@my_batch_program
quit
EOF
以上操作適用于所有Unix外殼程序。
Geoff H.:我的確喜歡Philip D的指令,但是我卻不了解hidearg覆蓋。我認為你隱藏密碼的方法可以再細分為兩種:第一種,執行’ps -ef ’觀察這一過程,建議你的用戶登錄Unix服務器,因此為什么在Oracle帳戶里不能簡單地在外面識別用戶身份呢?如果運行得不夠好,而且他們希望能連接到更遠的地方,那么就在Unix包上使用Batch用戶帳號登錄。如果你希望限制用戶登錄腳本的權限并想隱藏密碼,為什么不允許用戶登錄SUDO,登錄超級用戶執行腳本呢?這些方法都能運行,整個都取決于你怎樣安裝。希望這些建議能對你們有所幫助。
Witold I.:我有時用另一訣竅隱藏密碼,即利用我設定的環境變量。在腳本中可設定環境變量選擇用戶。如:
set?the_password=mypass
sqlplus?user1/%the_password%@mydb
事實上,我常在TKPROF腳本里面使用這種方法,但是我用sqlplus也測試了,這種方法也很管用。
總結
以上是生活随笔為你收集整理的隐藏oracle数据库,如何隐藏Oracle密码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle exp导出成功终止,成功终
- 下一篇: oracle 数据统计收集,Oracle