oracle加密儲存過程

2021-08-17 04:21:02 字數 1121 閱讀 2152

方法一、oracle自帶工具

1、c:/>set nls_lang=american_america.usacii7

或c:/>set  nls_lang=american_america.we8iso8859p1

或c:/>set  nls_lang=american_america.zhs16gbk(當遇到加密報錯,且有中文的情況下可以使用)

2、把儲存過程儲存成sql檔案

3、c:>wrap iname=procedures.sql edebug=wrap_new_sql  在目錄下面會產生procedures.plb檔案,

4、sql plus中@procedures.plb就可以完成加密

sql>  @c:/procedures.plb

oracle提供了wrap工具來加密包括procedure、function、package等的pl/sql源**

wrap的執行在os的命令列環境下

語法:wrap  iname=input_file  [oname=output_file]

限制:字串、數字、變數名、表名、欄位名被保留在加密檔案中的,僅加密運算法則並限制被解密。所以,也就無法隱藏表名或者密碼等

有些新的sql語法,需要指定選項edebug=wrap_new_sql,否則不能被支援

pls-00753:包裝的單元格式錯誤

一般都是pl/sql根據編譯造成

在sqlplus中sql> @c:/procedures.plb,選擇其中的過程或方法測試。

注意:1、wrap只能檢測出基本的語法錯誤,而由於不登入資料庫所以無法檢查出語義的錯誤

2、向上相容,而不能向下相容,即低版本加密的過程可以到高版本上編譯,反之不行

3、加密package是僅加密package  body,而不加密包宣告

4、windows平台上執行時顯示錯誤:kgepop: no error frame to pop to for error  1801

需要先定義 set  nls_lang=american_america.zhs16gbk

加密檔名如果不指定的話,就是原檔案主檔案.plb

加密後使用  sql> @加密檔名 編譯到庫中,檢視的時候顯示已經被加密

方法二、建立加密的儲存過程

Oracle儲存過程加密

oracle儲存過程加密 實現方法 1 c set nls lang american america.usacii7 或c set nls lang american america.we8iso8859p1 或c set nls lang american america.zhs16gbk 當遇...

儲存過程加密

返回老師管理下所有學生數 create procedure proc sum student teacher id int sum student int outputas select sum student count id count 是統計函式 from student where teac...

如何加密Oracle中的儲存過程

軟體環境 1 作業系統 windows 2000 server 2 數 據 庫 oracle 8i r2 8.1.7 for nt 企業版 3 安裝路徑 c oracle 實現方法 1 d set nls lang american america.usacii7 或d set nls lang a...