3
是否有可能保護SQL 2008存儲過程代碼不受任何人的眼睛?也許一些加密,或像DLL一樣組裝?如何保護SQL Server中的SQL代碼
是否有可能保護SQL 2008存儲過程代碼不受任何人的眼睛?也許一些加密,或像DLL一樣組裝?如何保護SQL Server中的SQL代碼
是你可以將它保存在TI加密形式的數據庫,但如果這樣做,確保你有安全的地方保存原來的源代碼...
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
不幸的是,至少有兩種方法打敗這個機制。一種是在執行存儲過程時運行SQL Profiler;這通常可以揭示過程本身的文本,這取決於存儲過程的作用(例如,如果它有GO批處理,動態SQL等)。如果他們錯過初始安裝,用戶可以刪除存儲過程或刪除數據庫,啓動Profiler跟蹤,並要求您重新創建它們(在這種情況下,它們將捕獲CREATE PROCEDURE語句)。您可以防止探查從中透出通過在代碼中嵌入sp_password的文本窺探者,作爲註釋:
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
-- comment: sp_password
END
看看MSDN Create Procedure機制的文檔
確實這個方法有名字嗎?或者可能是任何鏈接? – Alkersan 2009-09-11 20:39:13
+1爲好的答案(雖然我個人認爲不需要涉及的技術) – ChristopheD 2009-09-11 20:49:31
不幸的是,它需要在谷歌上少於5分鐘才能找到一種方法來繞過SQL服務器中構建的普通加密。如果你真的想保護你的代碼,你可能想要尋找一個商業解決方案 – 2014-11-23 11:26:45