2012-02-20 84 views
3

我們有一個應用程序依賴於一些非常有趣和複雜的MS SQL存儲過程。現在我們想要在共享環境中使用這些過程的數據庫。有沒有辦法保護/加密/無論如何,這些存儲過程的內容不能被服務器管理員讀取(複製)?如何保護SQL Server存儲過程

+6

你不相信服務器的管理員與代碼?如果它是一個共享的環境,你不應該把敏感的信息放入存儲過程的文本中,它應該在你的應用程序代碼 – JNK 2012-02-20 21:05:30

回答

4

不,系統管理員總是可以獲取存儲過程的文本。

+0

好吧,我想我希望發生的事情是不可能的。 – Tys 2012-02-21 10:37:48

+0

是的...我想你做了:) – Asken 2012-02-21 10:46:56

2

您可以創建一個程序WITH ENCRYPTION,但這隻能保護您免於隨意撬動(它並非真正意義上的加密,更像是混淆),因爲網上有很多資源會告訴您如何解密。

如果您有重要的業務邏輯,請將其放入CLR。這樣可以保護你免受一些撬動,但一個堅定的人仍然會找到反編譯你的東西的方法。

0

您可以使用WITH ENCRYPTION子句混淆文本,但這不是真正的加密。你也可以使用基本上調用DLL的CLR路由,但我認爲這可能會影響性能。

我不認爲你應該讓任何你不信任的人查看存儲過程代碼,如果你的代碼真的是非常絕密我不知道爲什麼你甚至使用共享主機環境第一名?

如果你無法擺脫共享環境,至少應該嘗試並獲得你自己的實例,只有你有權訪問它。