2012-02-20 105 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路由,但我认为这可能会影响性能。

我不认为你应该让任何你不信任的人查看存储过程代码,如果你的代码真的是非常绝密我不知道为什么你甚至使用共享主机环境第一名?

如果你无法摆脱共享环境,至少应该尝试并获得你自己的实例,只有你有权访问它。