Oracle 缺少DBMS_加密包

Oracle 缺少DBMS_加密包,oracle,plsql,oracle11g,sh,dbms-crypto,Oracle,Plsql,Oracle11g,Sh,Dbms Crypto,我正在使用Oracle Database 11g Enterprise Edition 11.2.00.40版-64位产品。我们有一个初始管理员用户,该用户将在安装过程中通过插入表在数据库中创建。此操作需要使用SH1协议加密密码。根据Oracle文档,我应该能够使用数据库企业版附带的DBMS_加密包。但是我看不见。我可以看到DBMS_CRYPTO_工具包,而不是DBMS_CRYPTO_工具包。这个软件包并没有很好的文档记录,但我发现它与Oracle 12c一起提供,这让我更加困惑 我应该安装DB

我正在使用Oracle Database 11g Enterprise Edition 11.2.00.40版-64位产品。我们有一个初始管理员用户,该用户将在安装过程中通过插入表在数据库中创建。此操作需要使用SH1协议加密密码。根据Oracle文档,我应该能够使用数据库企业版附带的DBMS_加密包。但是我看不见。我可以看到DBMS_CRYPTO_工具包,而不是DBMS_CRYPTO_工具包。这个软件包并没有很好的文档记录,但我发现它与Oracle 12c一起提供,这让我更加困惑


我应该安装DBMS\U加密包还是使用DBMS\U加密工具包包?有没有人能解释如何用DBMS_CRYPTO_工具包包加密密码?我没有SYS访问数据库的权限,所以我想知道是否有一种方法可以在不使用DBMS_加密的情况下生成SH1密码,这足够简单?换句话说,安装它是否值得?

Oracle文档中说:

安全模型

Oracle数据库在SYS中安装此软件包 模式。然后,您可以将包访问权授予现有用户和角色 根据需要

请您的系统管理员授予对其的访问权限:

GRANT EXECUTE ON SYS.DBMS_CRYPTO TO USERXY;
甚至:

GRANT EXECUTE ON SYS.DBMS_CRYPTO TO PUBLIC;

我不明白甲骨文不公开这个软件包想要达到什么目的。我看不出使用它会有什么害处。

你是说DBMS\u模糊处理\u工具包(which)而不是DBMS\u加密\u工具包?还是真的?听起来您的DBA只需要授予您在DBMS_CRYPTO上的执行权限。不,我是说DBMS_CRYPTO_TOOLKIT。但我也有DBMS_模糊处理_工具包。不确定DBMS_CRYPTO_TOOLKIT和DBMS_CRYPTO有什么区别?问题是我没有看到DBMS_加密包。当我尝试授予执行权限时,我收到SQL错误“表或视图不存在”。授予我正在运行的特权的命令是将sys.dbms_crypto上的execute授予用户
DBMS\u CRYPTO\u TOOLKIT
没有文档记录,因此您不应该使用它
DBMS\u模糊处理\u工具包
已被弃用。您的DBA(或有权访问SYS的人,或另一个非常有特权的帐户)必须授予
DBMS\u CRYPTO
特权-作为普通用户,您不能向自己授予其他模式中对象的特权,鉴于DBMS_CRYPTO_TOOLKIT仍然被授予公共,即使是在19c中,这似乎特别奇怪。我认为,默认情况下拒绝访问的原因是,一些组织担心开发人员手工编写拙劣的加密例程,而不是使用企业解决方案。在某些地方,数据库安全政策中明确反对使用DBMS_CRYPTO。企业、安全架构师、开发人员和美国政府在处理密码技术方面一直面临挑战。在DBMS_CRYPTO软件包构建时,有两个相互竞争的因素:(1)每个人的后端系统都被网络黑客入侵,造成法律和营销后果;(2)对加密算法的武器级限制。Oracle需要一个应用程序级加密API(与内部透明数据加密相比),该API具有干净、易于理解和使用的API。然而,我们仍然必须满足所有球员的需求。