搜索
首页数据库mysql教程【11g新特性】Oracle加密表空间

【 11g 新特性】 Oracle 加密表空间 新年新群招募:中国Oracle精英联盟 170513055 群介绍:本群是大家的一个技术分享社区,在这里可以领略大师级的技术讲座,还有机会参加Oracle举办的技术沙龙,与兴趣相投的小伙伴一起笑谈风云起,感悟职场情! 前言 :数据

11g新特性】Oracle加密表空间

新年新群招募: 中国Oracle精英联盟 170513055

群介绍:本群是大家的一个技术分享社区,在这里可以领略大师级的技术讲座,还有机会参加Oracle举办的技术沙龙,与兴趣相投的小伙伴一起笑谈风云起,感悟职场情!


前言:数据治理领域里面经常会遇到敏感数据,例如我们征信中心的征信数据就是涉密数据,并不是所有的人都可以看到,就算有授权也只能看到指定对象的数据,那么想一想假设这些数据被流失出来会是一个怎样的场景,就像皇帝新装这个故事一个,全部搬上银幕被展现出来,还记得前几天12306网站信息被泄露了吗!下面来介绍一个Oracle 11g新特性给大家,此特性可以完全避免上述事件的发生,这就是Oracle11g加密表空间特性。

 

理论

创建一个加密表空间,作用是只要放在加密表空间中的表,没有wallet钱包中的密钥用户是打不开的,这就可以形成一个保护罩,就算你有权限查询数据也不能看到明文,这就起到了风险保障的作用,只有知道秘钥的管理员才能查看,下面我们来详细讲解。

 

加密表空间与wallet的关系

1.Oracle表空间的加密与解密完全是基于wallet钱包中的密钥进行的。

2.如果walletopen状态,那么我们可以使用其中的密钥,进行加密与解密处理。

3.如果walletclose状态,那么我们就拿不到密钥,此时加密表空间是不可用的,例如 查询 修改 创建都不允许

4.唯一删除表是不需要密钥的,walletopen or close状态都无所谓,直接删除即可

 

TDE(Transparent Data Encryption透明数据加密)使用场景

1.保护敏感数据,禁止未授权的访问,只有打开钱包才能查看数据。

2.防止数据丢失,当加密表空间的数据文件被恶意拷贝走后,如果你没有密钥是无法还原数据的。

3.防止数据被截获,当在网络传输时加密后的信息更安全,即使截获了也无法得知其中内容。

TDE可支持的加密算法种类AES(Advanced Encryption Standard高级加密标准) DES的升级版

  AES192           192位密钥加密

  AES128(default)  128位密钥加密

  AES256           256位密钥加密

  3DES168          168位密钥加密 DES(Data Encryption Standard数据加密标准)

AES标准是美国联邦政府采用的一套加密标准,用来替代原先的DES标准。AES属于对称性加密算法(加密与解密使用同一密钥进行),反之非对称性加密算法(加密与解密使用不同密钥进行)例如 RSA标准有公钥与私钥。

 

TDE(Transparent Data Encryption透明数据加密)加密原理

  先要创建一个“wallet钱包”,这个钱包里面保存着密钥,Oracle就是通过这个密钥对列进行加密和解密的。

  生成wallet钱包之前先要设定wallet钱包的保存位置

设置wallet钱包位置的文件$ORACLE_HOME/network/admin/sqlnet.ora

[oracle@cafeadmin]$ vim sqlnet.ora           在这个文件中添加如下脚本

encryption_wallet_location=(source=

                                  (method=file)

                                  (method_data=

                                 (directory=/u01/app/oracle/product/11.1.0/db_1/network/admin)))

  wallet里面创建密钥key,创建后自动打开wallet,密码"oracle"不加引号时,后面使用时也不需要加引号

SYS@COFFEE>alter system set encryption key authenticated by"oracle";

或【alter system set encryption key identified by oracle;

Systemaltered.

说明:authenticated by "oracle" :打开/关闭wallet的认证密码是oracle

如果报错

SYS@COFFEE>alter system set encryption key authenticated by "oracle";

altersystem set encryption key authenticated by "oracle"

*

ERRORat line 1:

ORA-28368: cannot auto-create wallet不能自动创建钱包

/u01/app/oracle/product/11.1.0/db_1目录下运行sqlplus 登录数据库就可以成功执行

  查看一下wallet钱包是否在$ORACLE_HOME/network/admin/目录下生成

[oracle@cafeadmin]$ ll

-rw-r--r--1 oracle dba  1573 Nov  7 03:21 ewallet.p12     这个就是我们刚才生成的wallet钱包,里面有我们创建的密钥(密文形式),打开wallet钱包的认证密码是“oracle”,创建wallet钱包之后密钥就自动在里面了。

创建一个加密表空间

SYS@COFFEE>create tablespace encrypted_tbs datafile '/u01/app/oracle/oradata/COFFEE/datafile/test_encrypted01.dbf'size 10m encryption default storage(encrypt);

CREATE TABLESPACE stablespace DATAFILE '/u01/app/oracle/oradata/COFFEE/datafile/stablespace.dbf'SIZE 10M ENCRYPTION DEFAULT STORAGE(ENCRYPT);

Tablespacecreated.

创建加密表空间encrypted_tbs,大小10MB,如果不指定加密算法默认使用AES128加密算法密钥长度128位,需open wallet

如果报错

ERRORat line 1:

ORA-28365: wallet is not open   此时报错是没有打开钱包,因为表空间的加密是使用钱包中的密钥进行加密的,如果钱包没打开便无法使用密钥,当然也就创建不了加密表空间。

Open&Closethe Oracle Wallet mothed

alter systemset wallet open identified by"oracle";                打开钱包

alter system set wallet close identified by "oracle";            关闭钱包11gR2 

alter system set wallet close;                              关闭钱包11gR1

查看表空间属性

SYS@COFFEE>select tablespace_name,encrypted from dba_tablespaces;

TABLESPACE_NAME                ENC

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

SYSTEM                         NO

SYSAUX                         NO

UNDOTBS1                      NO

TEMP                           NO

USERS                          NO

EXAMPLE                        NO

TBS1                           NO

TBS2                           NO

TBS3                           NO

TBS4                           NO

ENCRYPTED_TBS                 YES            加密状态

 

实验

在加密表空间上创建一张表encryption_t,这张表上数据全部为加密状态

SYS@COFFEE>create table encrypted_t (x int) tablespace encrypted_tbs;

Tablecreated.

插入一条数据

SYS@COFFEE>insert into encrypted_t values (100);

1 rowcreated.

SYS@COFFEE>commit;

Commitcomplete.

SYS@COFFEE>select * from encrypted_t;

         X

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

       100

我们关闭wallet看效果

SYS@COFFEE>altersystem set wallet close;

Systemaltered.

当没有打开wallet时不允许开打表

SYS@COFFEE>select * from encrypted_t;

select* from encrypted_t

              *

ERRORat line 1:

ORA-28365: wallet is not open          

创建一个新表encryption_t1时,也需要使用wallet钱包中的密钥进行加密

SYS@COFFEE>create table encrypted_t1 (x int) tablespace encrypted_tbs;

createtable encrypted_t1 (x int) tablespace encrypted_tbs

*

ERRORat line 1:

ORA-28365: wallet is not open

唯一例外->删除表,因为删除的过程是不需要密钥key参与,所以walletopen or close状态都无所谓,直接执行就好

SYS@COFFEE>droptable encryption_t;

Tabledropped.

 

小结:我们介绍了Oracle加密表空间的原理、场景、实践操作,从理论到实践给朋友们展示了Oralce加密表空间的使用效果,这里切记一定不要忘记wallet的认证密码,否则你将不能查询到表空间内的数据,最好的办法就是把密码记录到一个密码生成器中,定期更新,这样既保证安全性又保证不会忘记。




Leonarding
2015.01.05
天津&winter
分享技术~成就梦想
Blogwww.leonarding.com



声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL:初学者的基本技能MySQL:初学者的基本技能Apr 18, 2025 am 12:24 AM

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL:结构化数据和关系数据库MySQL:结构化数据和关系数据库Apr 18, 2025 am 12:22 AM

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL:解释的关键功能和功能MySQL:解释的关键功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL的目的:与MySQL数据库进行交互SQL的目的:与MySQL数据库进行交互Apr 18, 2025 am 12:12 AM

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

初学者的MySQL:开始数据库管理初学者的MySQL:开始数据库管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL的角色:Web应用程序中的数据库MySQL的角色:Web应用程序中的数据库Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

mysql:构建您的第一个数据库mysql:构建您的第一个数据库Apr 17, 2025 am 12:22 AM

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL:一种对数据存储的初学者友好方法MySQL:一种对数据存储的初学者友好方法Apr 17, 2025 am 12:21 AM

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境