经过相当详尽的搜索后,似乎没有真正可靠的方法来隐藏 Oracle 数据库中的代码(即保护例程、函数、包和触发器的代码)。
混淆(WRAP)虽然最初很有希望,但结果证明是无用的,因为很容易撤消混淆并取回原始(可读)代码。
那么,在我放弃之前,Oracle 是否支持任何能够真正隐藏代码的方法?(我的意思是,除了使用凭据阻止访问)。
经过相当详尽的搜索后,似乎没有真正可靠的方法来隐藏 Oracle 数据库中的代码(即保护例程、函数、包和触发器的代码)。
混淆(WRAP)虽然最初很有希望,但结果证明是无用的,因为很容易撤消混淆并取回原始(可读)代码。
那么,在我放弃之前,Oracle 是否支持任何能够真正隐藏代码的方法?(我的意思是,除了使用凭据阻止访问)。
虽然我根本不喜欢包装的想法。因为这对双方(客户/供应商)都没有好处。我不得不说,程序/函数的包装与打包的工作方式不同。
而对于包包装只是替换字节。对于处理器,Oracle 存储 ADA 虚拟机 p 代码。逆向工程要困难得多。
但无论如何,没有办法隐藏会话跟踪。因此 DBA 将始终能够看到由 PL/SQL 代码执行的 SQL 语句。
这也许是 Pro-C、Pro-COBOL 等预编译器语言的剩余优势之一。诚然,查询总是可以通过跟踪/监控来显示,但语言中的非 SQL 逻辑将被隐藏,因为您提供的内容将是编译对象。您确实可以选择从 PLSQL 调用 C 库(请参阅 CREATE LIBRARY)来进行计算,但要加入其中,只是为了在 SQL 和逻辑流之间进行分区,我认为这会很麻烦。这种方法往往习惯于利用外部实用程序(例如,用于验证银行账户的银行向导库、PAF 验证等)。