我正在开发一个有版本的项目。如果新版本准备发布,我准备存储过程以由DBA更新数据库。我给他发了SP,然后他执行了。但是,我不希望DBA看到我的SP代码。是否可能传输存储过程而不向DBA显示代码?安全传输存储过程
安全传输存储过程
回答
一种选择是在加密文本文件中提供SQL存储过程。在.NET中编写您自己的应用程序,该应用程序将读取加密的SQL文本,将其解密并部署到选定的服务器。
如果你在.NET中工作,那么你会知道写这样的应用程序是多么容易。只要提供该应用程序与您存储的Procs.DBA将能够使用该应用程序部署存储过程,而不会看到它们。 对于简单的场景,您可以硬编码解密SQL文本所需的'密码',但对于更敏感的场景,您可以使用PKI。
像所有其他解决方案一样,此解决方案可以进行反向设计,但是与在CLR中重写您的存储过程逻辑相比,恕我直言,这是一种更好的选择。
注意:我假设您将使用WITH ENCRYPTION
选项来创建存储过程。
我实际上并没有意识到'WITH ENCRYPTION'选项,+1 – Jodrell
WITH ENCRYPTION是最好的选择。感谢您的帮助。 – osmanraifgunes
好吧,正如Phillip已经评论过的那样,如果我是执行存储过程的人,我会在我的数据库上运行某些东西时遇到大问题,我无法阅读。
如果您希望您的代码不可读乍看之下,试图混淆(这种或那种形式几乎总是可用的 - 如果你只使用与执行即时BASE64编码/解码的字符串)
一切之上,你会需要加密的存储过程,但这取决于系统,我不知道tsql足以告诉你。
如果您运送CLR存储过程并混淆程序集,那么功能将相当隐蔽。
我会建议这将是错误使用CLR存储过程的动机。
谢谢你的回答。我会尝试一下并让你知道结果。 – osmanraifgunes
他们仍然可以运行SQL Profiler并查看SQL引擎实际执行的查询。阻止某人胜任对任何功能代码进行反向工程是非常困难的,但这会提高标准。 – Jodrell
- 1. 存储过程表安全
- 2. 安全地传输和存储密码
- 3. 传输存储过程
- 4. Posgresql存储过程传输
- 5. 存储过程vs无存储过程 - 安全视点
- 6. SQL存储过程是否安全?
- 7. 安全存储过程更新
- 8. AppFabric缓存传输安全
- 9. 密码存储和安全密码传输
- 10. 如何设置存储帐户所需的安全传输?
- 11. WCF传输安全
- 12. WCF传输安全
- 13. WCF传输安全
- 14. 通过网络传输GetBitmapBits(),安全吗?
- 15. 通过JSON安全地传输数据
- 16. 通过证书传输安全的WCF
- 17. Firebase存储安全
- 18. 安全存储$ _SESSION
- 19. Eclipse安全存储
- 20. 存储过程CSV输入
- 21. 输出的存储过程
- 22. SQL存储过程的多线程安全
- 23. WCF安全传输安全问题
- 24. 存储过程 - 将两个值传递到存储过程
- 25. T-SQL存储过程传递输入,输出采用
- 26. 应用程序传输安全问题
- 27. Java卡小程序,安全数据传输和安全通道
- 28. mySQL存储过程:输入参数传递给show程序
- 29. 通过wcf传输存储类
- 30. 存储过程比使用LINQ对数据库更安全吗?
在我看来,你正在寻找一个社会问题的技术解决方案。它不会解决问题。当DBA不允许你自己在服务器上运行存储过程时,他肯定不会运行你写的任何他无法读取的程序。 – Philipp
DBA无法运行'sp_helptext'什么停止http://msdn.microsoft.com/en-us/library/ms176112.aspx? – Jodrell
我在银行工作。 DBA具有执行SP的身份验证,但我没有。但是,我已经签署了一份关于申请安全责任的文件。所以,银行和我没有信任问题。 DBA可以更改存储过程。至少,他可以偷走我的代码。我花了6年的时间来开发这个软件。而且我不希望他自由地使用我的代码。为什么用户遇到问题就遇到问题。如果你知道一个方法回答这个问题。我没有要求你提出关于这个问题的想法。它是社交还是其他? BLa bla。只需要解决。明确? – osmanraifgunes