扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Oracle 应用服务器应用程序使用 Sec_Manager.Secure_Package 程序包中的例程存储加密格式的私人数据(如使用 Secure_Package.Secure_Data 存储 CARD_NO 数据)。
例如,要将“a1b2c3d4”用作加密密钥,必须将最初如下所示的典型 INSERT 语句
insert into CUSTOMER (NAME, CARD_NO) values ('Jane Doe', '1234123412341234');转换为:
insert into CUSTOMER (NAME, CARD_NO) values ('Jane Doe', Sec_Manager.Secure_Package.Secure_Data('1234123412341234','a1b2c3d4'));同样,Oracle 应用服务器应用程序还使用 Sec_Manager.Secure_Package 中的例程读取加密格式的数据,如 CARD_NO 数据的 Secure_Package.Clear_Data。然后利用插入值时使用的加密密钥来以明文格式取回受保护信息。这种情况下,必须将最初为如下所示的典型 SELECT 语句
select NAME, CARD_NO from CUSTOMER;修改为:
select NAME, Sec_Manager.Secure_Package.Clear_Data(CARD_NO,'a1b2c3d4') from CUSTOMER;
wrap iname=Secure_Package.sql oname=Secure_Package.sec打包后,可以在 SQL*Plus 提示符后象执行任何明文脚本一样执行 Secure_Package.sec,且 Oracle 引擎还将对其进行解释。同一概念也可应用于任何其他与安全性相关的 PL*SQL 脚本。此方法不但禁止了参与代码升级的人员(数据库管理员、开发人员、支持和管理人员)查看程序包内容,而且程序包内容还以加密格式部署到数据库中,因此以后要尝试破解这些程序包内容是很难的。
即使具有数据库管理员权限的入侵者将 CONNECT 权限授予安全对象所有者 Sec_Manager 以查看保护和加密程序包的内容,也不会有任何明文会存储在这些对象的数据库中。由于 Oracle 未提供任何“解包”实用程序,因此入侵者将必须破解 Oracle 的加密算法才能够查看程序包内容。
audit insert, update, select on SHIP2004.CUSTOMER;但使用 Oracle Fine Grained Auditing (FGA),您可以进一步改进访问监视以最小化处理开销并提供有意义的信息。enable_fga.sql 中提供的示例使用 DBMS_FGA 程序包启用基本的审计策略。数据库中的内置审计机制禁止用户绕过审计,从而确保了它的精确性。可以在 DBA_FGA_AUDIT_TRAIL 视图以及 DBA_COMMON_AUDIT_TRAIL 视图中查看审计记录,在策略指定 audit_trail = DBMS_FGA.DB_EXTENDED 的情况下,审计记录甚至可以包含 SQLBIND 和 SQLTEXT 信息。 可以使用 Oracle 提供的功能轻松地增强此处提供的示例,从而加入电子邮件或寻呼机通知和激活条件,以只生成特定事件的审计记录
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者