应用于:
oracle安全服务器版本 -11.1.1.0.7和更新
文档中的信息适用于任何平台
目标:
下面的注解用于回答一些短的常见的TDE问题
解决方式:
快速和脏TDE设置:
#1.设置wallet位置
1.1默认情况下,在$ORACLE_BASE/admin/<global_db_name>/wallet目录下,没有被要求的sqlnet.ora参数
1.2在sqlnt.ora中类似于下面:
ENCRYPTION_WALLET_LOCATION =
(SOURCE = (METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = /etc/oracle/WALLETS/$ORACLE_SID)
)
)
#2.确信wallet目录存在
#3.从sqlplus中创建wallet
通过"wallet密码"来修改系统被标记的密钥
Wallet应该用其他的工具来创建吗?(owm、orapki)
不,这种由TDE来使用的wallet应该由"修改系统设置的密钥"来创建
TDEwallet应该被用于其他的目的而不是TDE吗?
不,这就是为什么这个参数ENCRYPTION_WALLET_LOCATION所提供的原因,为的就是分离这些功能
如何使得wallet自动登录?
这个可以使用orapki或从OWM来得到,类似于下面的陈述:
orapki wallet create -wallet <wallet location> -auto_login -pwd "wallet password"
自动登录wallet可以被用来当做特殊的服务器吗?
是的,但是仅仅用在以11.2开始的版本中,使用这个参数-auto_login_local orapki
Wallet什么时候打开?
1.通过使用"alter system set wallet open" 语句手动的打开
2.如果wallet是自动登录,当第一个加密对象被访问的时候打开(在数据库对象打开的时候,自动登录wallet是不会打开的)
Wallet应该被多个数据库所共享吗?
技术上来讲,这个可能的,但是并不建议这样。
假如wallet丢失了,或者密码丢失了,那么wallet可以被覆盖吗?
不可以,在这种情况下,什么���情也做不了。这就是为什么wallet应该定期备份的原因,至少在在重新生成mastwer键时备份wallet
如果wallet密码丢失了,但是却是选择的自动登录模式,那么此时会发生什么情况?
主要包括以下几种情况:
1.解析加密数据
2.删除加密表
3.移除wallet
4.执行一个完整日志开关旋转
5.重新生成一个新的wallet
6.重新解析加密数据
一个已经加密的表能被解密吗?
不会,这是不可能的。
如何解析一个已经加密的表?
通过移除这些对象从已经加密的表到一个已经被解密的表。这可以使用一些oracle程序来做到这些程序包括:export/import, alter table move or dbms_redefinition ,这些语句是大家都知道的。
什么是TDE加密性能开销?
1.对于列加密,它主要依靠加密列的数目和解密记录的数目。这些数字更小,开销也更小。有一点值得提及:索引范围扫描不能用加密类型。
2.对于表的加密,如果可以访问表的话,它主要依靠于这种类型。所有的表扫描都会同坐这种加密类型来严重地影响着,因为所有的表在进程中并没有被解码,不管实际上所需要列的数目和记录的数目。如果用FTS方式频繁的访问表,它比使用列加密更好。然而,表加密是以索引范围扫描工作的,而这对加密类型就是可能的。
TDE能够被用作来自用户的一种的混搅数据的方法吗?
不会,TDE用足够的权限给用户返回了足够精简的数据用来查询数据。它不是一种从适当的数据库用户中保护数据的方法。