隨著社會的分工與合作越來越密切,同一台服務器裡可能會運行幾家公司不同的服務產品, 有時候服務之間需要互相提供數據,以實現經濟上的雙贏;當然各自的安全和獨立性也需要保證。 如果這樣的服務後台用的是Oracle數據庫,可以用加密存儲過程,並授於其它用戶執行的方法。 首先我們要為提供的數據寫一個正確合乎邏輯的存儲過程或函數test_proc,假設源代碼是test.sql。 然後用wrap實用工具(默認的目錄$ORACLE_HOME/bin)加密它: 使用wrap的語法是: $wrap iname = input_file [oname=output_file] ↑ ↑ 加密前存儲過程或函數 加密後存儲過程或函數,默認的後綴為*.plb 舉例: $wrap iname=test.sql 會在當前目錄產生test.plb加密的存儲過程或函數 備注: Windows和unix平台的下wrap生成*.plb加密文件可以通用,版本是向上兼容的。 最後編譯這個加密後的test.plb SQL> @/tmp/test.plb 並賦於相關合作用戶(another_user)執行的權限 SQL> grant execute on test_proc to another_user; 其它的注意事項: 合作用戶不能有過多的權限, 使他們不能查數據字典和其它用戶下的表,密碼要起得難一些。