如何保护SQL Server存储过程

3

我们有一个应用程序,它依赖于一些非常有趣和复杂的MS SQL存储过程。现在我们想在共享环境中使用这个数据库和那些存储过程。是否有一种方法可以保护/加密/等等,以便服务器管理员无法读取(复制)那些存储过程的内容?

我们有一个应用程序,它依赖于一些非常有趣和复杂的MS SQL存储过程。现在我们想在共享环境中使用这个数据库和那些存储过程。是否有一种方法可以保护/加密/等等,以便服务器管理员无法读取(复制)那些存储过程的内容?

6
你不信任服务器管理员处理代码?如果这是一个共享环境,你不应该把敏感信息放在存储过程的文本中,而应该放在你的应用程序代码中。 - JNK
3个回答

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

好的,我想我原本希望的事情结果是不可能实现的。 - Tys

2
您可以使用WITH ENCRYPTION创建一个过程,但这只能保护您免受一些随意窥视的威胁(这不是严格意义上的加密,更像是混淆),因为有许多在线资源将向您展示如何解密。如果您有重要的业务逻辑,请将其放入CLR中。这将保护您免受某些窥视的威胁,但决心强烈的人仍然会找到方法来反编译您的内容。

0

你可以使用WITH ENCRYPTION子句混淆文本,但这并不是真正的加密。你也可以选择CLR路线,它基本上调用一个DLL,但我认为这可能会影响性能。

我认为你不应该给任何你不信任的人sa访问权限来查看存储过程代码,如果你的代码真的是如此机密,那么你为什么要在共享托管环境中使用呢?

如果你无法脱离共享环境,至少尝试获取只有你拥有sa访问权限的自己的实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接