我们有一个依赖于一些非常有趣和复杂的MS SQL存储过程的应用程序。现在,我们希望在共享环境中将数据库与这些过程一起使用。有没有办法保护/加密/无论如何,服务器管理员无法读取(复制)那些存储过程的内容?
答案 0 :(得分:4)
不,系统管理员始终可以获取存储过程的文本。
答案 1 :(得分:2)
你可以创建一个程序WITH ENCRYPTION
,但这只会保护你免受随意撬动(它不是真正的加密,更严格意义上说,更像是混淆),因为网上有很多资源可以告诉你如何解密。
如果您有重要的业务逻辑,请将其放入CLR。这将保护你免受一些撬动,但一个坚定的人仍然会找到一种方法来反编译你的东西。
答案 2 :(得分:0)
您可以使用WITH ENCRYPTION子句对文本进行模糊处理,但这不是真正的加密。您也可以使用CLR路由,它本质上称为DLL,但我认为这可能会影响性能。
我认为你不应该让任何你不信任的人访问存储过程代码,如果你的代码真的如此绝对,我想知道为什么你甚至在第一个使用共享托管环境放置?
如果您无法离开共享环境,至少尝试获取您自己的实例,只有您可以访问。