如何保护SQL Server存储过程

时间:2012-02-20 21:02:58

标签: sql sql-server security sql-server-2008

我们有一个依赖于一些非常有趣和复杂的MS SQL存储过程的应用程序。现在,我们希望在共享环境中将数据库与这些过程一起使用。有没有办法保护/加密/无论如何,服务器管理员无法读取(复制)那些存储过程的内容?

3 个答案:

答案 0 :(得分:4)

不,系统管理员始终可以获取存储过程的文本。

答案 1 :(得分:2)

你可以创建一个程序WITH ENCRYPTION,但这只会保护你免受随意撬动(它不是真正的加密,更严格意义上说,更像是混淆),因为网上有很多资源可以告诉你如何解密。

如果您有重要的业务逻辑,请将其放入CLR。这将保护你免受一些撬动,但一个坚定的人仍然会找到一种方法来反编译你的东西。

答案 2 :(得分:0)

您可以使用WITH ENCRYPTION子句对文本进行模糊处理,但这不是真正的加密。您也可以使用CLR路由,它本质上称为DLL,但我认为这可能会影响性能。

我认为你不应该让任何你不信任的人访问存储过程代码,如果你的代码真的如此绝对,我想知道为什么你甚至在第一个使用共享托管环境放置?

如果您无法离开共享环境,至少尝试获取您自己的实例,只有您可以访问。