三种Oracle RMAN备份加密策略(下)

 

 

说明:本篇参考eygle老师的作品《Oracle DBA手记4:数据安全警示录》,特此表示感谢。


3

Oracle Wallet加密策略

 

Oracle Wallet是一种加密安全策略,过去我们在TDEOracle透明加密)部分研究过这个组件。简单的说,Oracle Wallet就是在本机上配置一个加密配置文件,通过SQL命令控制Oracle Wallet的开启关闭状态,如果Wallet关闭或者不存在,那么一些加密的信息(包括TDERMAN备份集合)数据就不能正常打开。

 

使用Oracle Wallet应用在RMAN备份中,可以实现类似的透明策略。而且,备份集合只能在相同的服务器(借助Wallet文件)才能正确打开。

 

首先,我们需要创建Oracle Wallet。注意:笔者使用的GI单实例ASM策略,监听器是从Grid里面执行的。

 

 

[oracle@NCR-Standby-Asm ~]$ lsnrctl status

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 08-JUN-2015 13:49:47

 

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date                25-MAY-2015 17:39:56

Uptime                    13 days 20 hr. 9 min. 51 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/grid/product/11.2.0/grid/network/admin/listener.ora

Listener Log File         /u01/app/grid/diag/tnslsnr/NCR-Standby-Asm/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

Services Summary...

Service "+ASM" has 1 instance(s).

  Instance "+ASM", status READY, has 1 handler(s) for this service...

Service "sicsstb" has 1 instance(s).

  Instance "sicsstb", status READY, has 1 handler(s) for this service...

Service "sicsstbXDB" has 1 instance(s).

  Instance "sicsstb", status READY, has 1 handler(s) for this service...

The command completed successfully

 

 

设置wallet目录位置,需要修改sqlnet.ora文件,加入特定的参数路径信息。注意:虽然监听器指向的是Grid目录位置。但是修改的sqlnet.ora文件,一定是Oracle Instance目录下的sqlnet.ora文件。否则自动创建秘钥文件过程会失败。

 

 

 

[oracle@NCR-Standby-Asm ~]$ cd $ORACLE_HOME/network/admin

[oracle@NCR-Standby-Asm admin]$ ls -l

total 24

drwxrwxr-x 2 oracle oinstall 4096 May  5 10:03 samples

-rwxrwxr-x 1 oracle oinstall  381 Dec 17  2012 shrept.lst

-rwxrwxr-x 1 oracle oinstall  327 Jun  8 15:32 sqlnet1506083PM3230.bak

-rwxrwxr-x 1 oracle oinstall  327 Jun  8 14:29 sqlnet.ora

-rwxrwxr-x 1 oracle oinstall  340 Jun  8 15:32 tnsnames1506083PM3230.bak

-rwxrwxr-x 1 oracle oinstall  340 Jun  8 16:19 tnsnames.ora

 

[oracle@NCR-Standby-Asm admin]$ cat sqlnet.ora

# Generated by Oracle configuration tools.

 

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

 

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u02/app/oracle/admin/sicsstb/WALLET)))

 

 

进入sqlplus创建wallet文件。

 

 

[oracle@NCR-Standby-Asm admin]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 8 14:29:28 2015

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

SQL> conn / as sysdba

Connected.

 

SQL> alter system set encryption key authenticated by "test";

System altered.

 

 

确定wallet文件生成。

 

[oracle@NCR-Standby-Asm admin]$ pwd

/u02/app/oracle/product/11.2.0/dbhome_1/network/admin

 

[oracle@NCR-Standby-Asm admin]$ cd /u02/app/oracle/admin/sicsstb/WALLET

[oracle@NCR-Standby-Asm WALLET]$ ls -l

total 4

-rw-r--r-- 1 oracle asmadmin 2845 Jun  8 14:29 ewallet.p12

 

 

尝试关闭开启钱包操作。

 

 

SQL> alter system set encryption wallet close identified by "test";

System altered

 

SQL> alter system set encryption wallet open identified by "test"; --wallet打开了

System altered

 

 

配置加密备份过程。

 

 

RMAN> configure encryption for database on;

 

new RMAN configuration parameters:

CONFIGURE ENCRYPTION FOR DATABASE ON;

new RMAN configuration parameters are successfully stored

 

RMAN> set encryption on;

executing command: SET encryption

 

 

备份数据库,注意此时wallet开启。

 

 

RMAN> backup database;

 

Starting backup at 08-JUN-15

using channel ORA_DISK_1

(篇幅原因,有省略……

Starting Control File and SPFILE Autobackup at 08-JUN-15

piece handle=+RECO/sicsstb/autobackup/2015_06_08/s_881858264.262.881858265 comment=NONE

Finished Control File and SPFILE Autobackup at 08-JUN-15

 

 

备份操作是成功的,但是如果我们关闭了钱包,备份操作如何呢?

 

 

SQL> alter system set encryption wallet close identified by "test";

System altered

 

 

备份过程:

 

 

RMAN> backup database;

 

Starting backup at 08-JUN-15

using channel ORA_DISK_1

channel ORA_DISK_1: starting full datafile backup set

(篇幅原因,有省略……

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/08/2015 16:39:38

ORA-19914: unable to encrypt backup

ORA-28365: wallet is not open

 

 

恢复过程测试。

 

 

RMAN> startup mount;

 

connected to target database (not started)

Oracle instance started

database mounted

 

Total System Global Area    1603411968 bytes

Fixed Size                     2253664 bytes

Variable Size               1006636192 bytes

Database Buffers             587202560 bytes

Redo Buffers                   7319552 bytes

 

 

RMAN> restore database;

 

Starting restore at 08-JUN-15

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=131 device type=DISK

(篇幅原因,有省略……

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 06/08/2015 16:41:19

ORA-19870: error while restoring backup piece +RECO/sicsstb/backupset/2015_06_08/nnndf0_tag20150608t163709_0.261.881858229

ORA-19913: unable to decrypt backup

ORA-28365: wallet is not open

 

 

不开钱包,就不能进行还原。

 

 

SQL> alter system set encryption wallet open identified by "test";

 

System altered

 

 

RMAN> restore database;

 

Starting restore at 08-JUN-15

using channel ORA_DISK_1

 

channel ORA_DISK_1: starting datafile backup set restore

(篇幅原因,有省略…….

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:00:35

Finished restore at 08-JUN-15

 

RMAN> recover database;

 

Starting recover at 08-JUN-15

using channel ORA_DISK_1

 

starting media recovery

media recovery complete, elapsed time: 00:00:01

Finished recover at 08-JUN-15

 

 

这种方式比较适合本地数据恢复,如果本地异地恢复结合的方式,建议使用第三种混合策略。

 

4、混合加密策略

 

混合加密策略其实就是前面两种策略的集合。如果本地备份恢复,就可以使用wallet进行透明操作。如果是异地恢复,可以使用密码策略。

 

首先设置encryption参数。

 

 

RMAN> set encryption off;      

 

executing command: SET encryption

 

RMAN> set encryption on identified by "test"; --注意:此处没有only了。

 

executing command: SET encryption

 

 

重启还原。

 

 

RMAN> shutdown immediate;

 

database closed

database dismounted

Oracle instance shut down

 

RMAN> startup mount;

 

connected to target database (not started)

Oracle instance started

database mounted

 

Total System Global Area    1603411968 bytes

 

Fixed Size                     2253664 bytes

Variable Size               1006636192 bytes

Database Buffers             587202560 bytes

Redo Buffers                   7319552 bytes

 

 

 

RMAN> restore database;

 

Starting restore at 08-JUN-15

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=131 device type=DISK

 

channel ORA_DISK_1: starting datafile backup set restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_DISK_1: restoring datafile 00001 to +DATA/sicsstb/datafile/system.267.881856977

channel ORA_DISK_1: restoring datafile 00002 to +DATA/sicsstb/datafile/sysaux.268.881856977

channel ORA_DISK_1: restoring datafile 00003 to +DATA/sicsstb/datafile/undotbs1.269.881856977

channel ORA_DISK_1: restoring datafile 00004 to +DATA/sicsstb/datafile/users.270.881856977

channel ORA_DISK_1: reading from backup piece +RECO/sicsstb/backupset/2015_06_08/nnndf0_tag20150608t163709_0.261.881858229

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 06/08/2015 16:47:42

ORA-19870: error while restoring backup piece +RECO/sicsstb/backupset/2015_06_08/nnndf0_tag20150608t163709_0.261.881858229

ORA-19913: unable to decrypt backup

ORA-28365: wallet is not open

 

 

启动钱包。

 

 

SQL> alter system set encryption wallet open identified by "test";

System altered

 

 

之后恢复正常。

 

5、结论

 

安全是当今信息技术的一个大课题,需要从技术、管理、制度和人员多层面进行配置规划,设置标准的流程规范。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现生成订单30分钟未支付,则自动取消

目录 了解需求 方案 1:数据库轮询 思路 实现 优点 缺点 方案 2:JDK 的延迟队列 思路 实现 优点 缺点 方案 3:时间轮算法 思路 实现 优点 缺点 方案 4:redis 缓存 思路一 实现一 解决方案 思路二 实现二 优…

Oracle树形结构查询之prior的理解

--1 建表 create table 宇宙( 行星等级 number ,行星名称 varchar2(50) ,上级行星等级 number); --2 数据准备 insert into 宇宙 (行星等级, 行星名称, 上级行星等级)values (1, 地球, 2); insert into 宇宙 (行星等级, 行星名称, 上级行星等级)values (2, 太阳, 3); insert in…

CA周记-.NET MAUI in GCR 月报(2022年8月)

.NET MAUI 正式版本发布已经三个月了,有小伙伴希望我们有一些关于 .NET MAUI 相关的本地化内容以及开源项目介绍,接下来从8月开始,我希望用月报的形式和大家分享 .NET MAUI 在中国的活动,学习资源,优秀的开源项目&…

Vue的内容分发slot的使用

什么是内容分发&#xff1f;? 概括&#xff1a;将父组件的内容放到子组件指定的位置 场景&#xff1a;在使用组件时&#xff0c;我们常常需要像这样组合使用 < app>< app-header>< /app-header>< app-footer>< /app-footer> < /app> 复制…

一文读懂研发效能洞察的五大流动指标

作者 | 张乐 目录 1 数字化时代&#xff0c;软件研发本身也要数字化 2 流框架及五大流动指标 1. 流动速率 2. 流动时间 3. 流动负载 4. 流动效率 5. 流动分布 3 研发过程中的常见瓶颈及解决思路 1. 稀缺的专家或资源&#xff0c;导致流动受阻 2. 缺乏自动化或工程能…

RabbitMQ队列

RabbitMQ是什么&#xff1f; RabbitMQ是一个在AMQP基础上完整的&#xff0c;可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列&#xff08;MQ&#xff09;是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息&…

《ASP.NET Core 6框架揭秘实例》演示[14]:日志的进阶用法

为了对各种日志框架进行整合&#xff0c;微软创建了一个用来提供统一的日志编程模式的日志框架。《ASP.NET Core 6框架揭秘》实例演示[13]&#xff1a;日志的基本编程模式》以实例演示的方式介绍了日志的基本编程模式&#xff0c;现在我们来补充几种“进阶”用法。[本文节选《A…

Linux内核驱动GPIO的使用

一 概述Linux内核中gpio是最简单&#xff0c;最常用的资源(和 interrupt ,dma,timer一样)驱动程序&#xff0c;应用程序都能够通过相应的接口使用gpio&#xff0c;gpio使用0&#xff5e;MAX_INT之间的整数标识&#xff0c;不能使用负数,gpio与硬件体系密切相关的,不过linux有一…

什么是云原生,云原生技术为什么这么火?

文章目录 一、开篇浅谈二、云计算是什么三、云原生是什么四、云计算的四个层次 4.1 IaaS&#xff08;基础架构即服务&#xff09;4.2 PaaS&#xff08;平台即服务&#xff09;4.3 SaaS&#xff08;软件即服务&#xff09;4.4 DaaS&#xff08;数据即服务&#xff09;五、云原生…

Html5学习笔记1 元素 标签 属性

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>HTML5学习笔记</title> </head><body bgcolor"#90ee90">1.Html5的元素<br/><br/>元素指的是从開始标签到结束…

PerfView专题 (第五篇):如何寻找 C# 托管内存泄漏

一&#xff1a;背景 前几篇我们聊的都是 非托管内存泄漏&#xff0c;这一篇我们再看下如何用 PerfView 来排查 托管内存泄漏 &#xff0c;其实 托管内存泄漏 比较好排查&#xff0c;尤其是用 WinDbg&#xff0c;毕竟C#是带有丰富的元数据&#xff0c;不像C下去就是二进制。二&a…

DevOps及DevOps常用的工具介绍

目录 1. 什么是 DevOps2. DevOps 概念的起源 2.1. 单体架构 瀑布模式2.2. 分布式架构 敏捷开发模式 2.2.1. 多人协同开发问题2.2.2. 多机器问题2.2.3. 开发和运维角色的天生对立问题2.3. 微服务架构 DevOps3. DevOps 到底是什么4. DevOps 常用的工具 4.1. Jenkins4.2. Kuber…

2018年SIAF 广州国际工业自动化技术及装备展览会下周隆重开幕

同期研讨活动聚焦行业未来趋势&#xff0c;探索技术发展及实际应用层面。 华南最重要的工业自动化行业盛会之一&#xff0c;SIAF广州国际工业自动化技术及装备展览会&#xff0c;将于2018年3月4至6日在广州中国进出口商品交易会展馆隆重开幕。为期三天的展会将再度与广州国际模…

生活感言

There will be moments when the only thing left is for us to question our existence.总时有一些瞬间&#xff0c;让人感觉留给我们的唯一的事情就是质疑我们自身的存在。There are always days when we get so lonely and depressed and the world has lost its colours.我…

相约现在,遇见未来

# 遇见未来这个世界很小&#xff0c;我们就这样遇见。这个世界很大&#xff0c;分开就很难再见。大家好&#xff0c;我是 chait&#xff0c;很高兴我们在这里《遇见》。今天是我申请公众号通过后的第一天&#xff0c;也是在该平台发表的第一篇文章&#xff0c;唠嗑点啥呢&#…

2018-04-12

https://www.cnblogs.com/dragonsuc/p/5512797.html linux top https://www.cnblogs.com/kex1n/p/7211008.html linux 后台 http://dev.xxzhushou.cn/noticeArticle.html?ID65 chacha http://bbs.xxzhushou.cn/forum.php?modviewthread&tid88904141&extrapage%3D1%26…

有关并行的两个重要定律

本文摘自 葛一鸣 老师的《实战java高并发程序设计》一书。因为觉得写得好就摘下来了 将串行程序改造成并发程序&#xff0c;一般来说可以提高程序的整体性能&#xff0c;但是究竟能提升多少&#xff0c;甚至说究竟是否真的可以提高&#xff0c;还是一个需要研究的问题。目前&am…

java web中jsp常用标签

在jsp页面开发过程中&#xff0c;经常需要使用JSTL&#xff08;Java Server Pages Standard Tag Library&#xff09;标签开开发页面&#xff0c;是看起来更加的规整舒服。 JSTL主要提供了5大类标签库:1. 核心标签库: 为日常任务提供通用支持,如显示和设置变量,重复使用一…

深入OKHttp源码分析(二)----OkHttp任务调度核心类Dispatcher解析

OkHttp任务调度核心类Dispatcher解析 上一篇我们分析了okhttp的同步和异步请求的执行流程并进行了源码分析&#xff0c;深入OKHttp源码分析&#xff08;一&#xff09;----同步和异步请求流程和源码分析 那么今天我们来看看在整个执行流程中起到关键作用的Dispatcher调度类。首…

C# 二十年语法变迁之 C# 10参考

C# 二十年语法变迁之 C# 10参考https://benbowen.blog/post/two_decades_of_csharp_vi/自从 2000 年引入 C# 以来&#xff0c;该语言的规模已经大大增加&#xff0c;我不确定任何人是否有可能随时对每个语言特性都有深入的了解。因此&#xff0c;我想写一系列快速参考文章&…