gtag

2010年11月10日 星期三

在MSSQL、ORACLE中的預存程序或PACKAGE如何加密

在MSSQL中如何不讓其他非業務相關的人員,暸解自己所撰寫的函式邏輯?MSSQL提供了一個很方便的功能,也能很容易保護自己所寫的預存程序程式內容。

依照下方的語法,加入WITH ENCRYPTION,即可以把自己所寫的預存程序程式內容加密。

CREATE procedure TESTProcedure
WITH ENCRYPTION AS
SELECT *
FROM sys.all_objects

使用指令檢視預存程序的內容。

EXEC sp_helptext TESTProcedure

在訊息視窗中會出現下列訊息。

物件 'TESTProcedure' 的文字已加密。

執行預存程序的結果也正常。



在SSMS工具中,想利用無法利用[修改]做檢視內容。


在ORACLE一樣提供了對PACKAGE的加密功能,不同的是必須先把Package放至檔案中,透過wrap這命令列工具程式來加密。舉例SQL檔為TEST.sql

D:\> wrap iname=TEST.sql
D:\> wrap iname=TEST.sql oname=TEST.wrap

執行結果



加密後的PACKAGE內容,就會變成下面類似亂碼的內容:



重點:兩種加密後都不能回復,請加密前保存好明碼的程式內容。

沒有留言:

張貼留言