gpt4 book ai didi

sql - 如何在 sql server 中保护有值(value)的存储过程

转载 作者:行者123 更新时间:2023-12-04 17:54:58 24 4
gpt4 key购买 nike

这个问题可能不适合这个平台,但我非常信任这里的人。

我正在为 ERP 系统编写数据传输应用程序,许多人创建的 C# 项目速度慢、不灵活且充满错误。我找到了一种使用存储过程在 SQL SERVER 中执行此操作的方法。但我不希望我的 SP 被任何程序员窃取,因为 SP 是开源的。我创建了加密的 SP,但我在互联网上找到了一个可以显示 SP 内容的小应用程序。

是否有任何其他方法可以在 sql server 中加密和保护我的 SP?

最佳答案

您的应用程序是否完全用存储过程编写而没有其他代码?您认为有人真的想要窃取您的代码的可能性有多大?我之所以问,是因为通常情况下,如果有人非常想要代码,他们会想办法得到它。如果他们会走到counterfeit an entire Apple store那么总有人可以破解任何加密方案。

保护您的知识产权(即代码)的最佳方式就是不要将其提供给任何人:将其作为服务托管。除了这个明显、简单但并非总是可行的选项之外,这里还有一些需要考虑的事项:

  1. 对于 T-SQL 存储过程,您当然可以通过使用内置加密来阻止低端窃贼。是的,你找到了一种通过四处搜索来解密它的方法,但并不是每个人都会这样做或知道要寻找什么。这不是一个太大的障碍,但同样,这是一个非常简单的步骤,可以淘汰那些四处闲逛的人。

  2. 您可以将您的一些代码放入 SQLCLR(即通过 SQL Server 的“CLR 集成”功能/API 的 .NET C# 或 VB),尽管这并非适用于所有情况,也不是一个好的选择为一切做。但是,对于任何在 SQLCLR 中执行效率更高的代码,获取程序集的源代码会更加困难。同样,并非不可能,并且有免费工具可以反编译程序集,但这确实提高了标准,因为有人必须将程序集提取到 DLL,然后反编译它(尽管我相信一个工具可以从 SQL 中提取它服务器,但比“如何解密加密的存储过程”更难获得

  3. 关于 .NET 代码(绝对适用于独立应用程序,也可能适用于 SQLCLR 代码),也可以对程序集进行混淆处理,以致于最多也很难对其进行反编译。有Red-Gate的SmartAssembly等产品。可以做到这一点。

  4. 超越竞争对手:

    1. 进行创新并提供更好的功能(即更好的产品)。倾听客户的声音,让他们的生活更轻松。即使有人最终获得了您的代码,他们也无法窃取您。被盗代码可能会教给他们一些东西,但与您应该生成的代码相比,它基本上是停滞不前的。
    2. 提供更好的服务。风度翩翩,面带微笑地彻底、恭敬地回答问题(即使是愚蠢/愚蠢的问题——如果需要,向 friend 发泄,但绝不以书面形式)。当然,一些客户决定纯粹根据价格购买,但服务/支持通常是留住客户的重要因素。

因此,如果您能找到一种快速简便的方法来执行此操作,那就太好了。但是当你的时间应该花在改进你的产品上时,不要花太多时间在上面。此外,除非你想出一些高度复杂的算法,否则大多数东西都可以逆向工程,如果它们足够聪明的话。但是,如果您担心的人那么聪明,他们的软件会“缓慢、不灵活且充满错误”吗?沿着同样的思路,(只是为了说明),其他软件“缓慢、不灵活且充满错误”与它们是用 C# 编写的(尤其是“不灵活且充满错误”无关) "问题):它们只是写得不好 ;-)。

关于sql - 如何在 sql server 中保护有值(value)的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30407763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com