安装和升级 > 高级部署注意事项 > 高级数据库配置 > 使用透明数据加密 (TDE) 技术实现 Oracle 数据库加密 > 在新 Windchill 数据库上配置 Oracle TDE 表空间加密
  
在新 Windchill 数据库上配置 Oracle TDE 表空间加密
以下过程提供了在新 Windchill 数据库上配置 Oracle TDE 表空间加密的相关说明。
为 TDE 表空间配置数据库服务器
1. 准备 Oracle 数据库以进行加密。
在尝试创建加密的表空间前,请在数据库服务器上创建一个钱包以保存加密密钥。
钱包是用于存储身份验证和签名凭据的加密容器,其中包括 SSL 所需的密码、TDE 主密钥、PKI 私钥、证书以及受信任证书。借助 TDE 技术,可以在数据库服务器上使用钱包来保护 TDE 主密钥。由于数据是在 REDO 日志、UNDO 表空间和 TEMP 表空间中进行加密的,因此在打开数据库之前,需向数据库提供 TDE 主加密密钥。
所有 Windchill 表空间均使用相同的加密钱包和相同的加密密钥。
* 
尽管加密的表空间可以共享默认的数据库钱包,但 Oracle 建议在 sqlnet.ora 文件中指定 ENCRYPTION_WALLET_LOCATION 参数,以此将单独的钱包用于透明数据加密功能。使用钱包的默认位置,但不在 sqlnet.ora 文件中指定 ENCRYPTION_WALLET_LOCATION 参数,这是一个已知的安全风险。有关详细信息,请参阅 http://www.oracle.com/technetwork/database/security/twp-transparent-data-encryption-bes-130696.pdf
a. $ORACLE_HOME/network/admin/sqlnet.ora 文件中的 ENCRYPTION_WALLET_LOCATION 参数设置为钱包目录,如下所示:
ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallets/wind/)))
DIRECTORY 值替换为适用于您环境的值。
b. 使用 SQL*Plus,以数据库管理用户的身份登录到目标数据库,并执行以下命令来初始化钱包并添加主加密密钥。分别执行每个命令,并用适当的密码替换 <password>
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY “<password>”;
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY “<password>”;
Configure Wallet auto open after database restart:
orapki wallet create -wallet <wallet_home> -auto_login
2. 使用 SQL*Plus,以数据库管理用户的身份登录到目标数据库,并执行以下语句,将默认表空间更改为 SYSAUX
ALTER DATABASE DEFAULT TABLESPACE "SYSAUX";
3. 使用 SQL*Plus,删除原始表空间 (USERSBLOBSINDXWCAUDIT):
DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE BLOBS INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE INDX INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE WCAUDIT INCLUDING CONTENTS AND DATAFILES;
4. 使用 SQL*Plus,创建与原始表空间同名的新加密表空间。在下面的示例语句中,将 DATAFILE 值替换为适用于您所用环境的值。
CREATE TABLESPACE "USERS"
DATAFILE '/u01/app/oracle/oradata/wind/users01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
CREATE TABLESPACE "BLOBS"
DATAFILE '/u01/app/oracle/oradata/wind/blobs01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
CREATE TABLESPACE "INDX"
DATAFILE '/u01/app/oracle/oradata/wind/indx01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
CREATE TABLESPACE "WCAUDIT"
DATAFILE '/u01/app/oracle/oradata/wind/wcaudit01.dbf'
SIZE 100M AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED LOGGING
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
DEFAULT STORAGE ( ENCRYPT ) ENCRYPTION USING 'AES256';
5. 使用 SQL*Plus,将默认表空间重置为 USERS
ALTER DATABASE DEFAULT TABLESPACE "USERS";
6. 使用 SQL*Plus,执行以下查询以验证是否已将表空间创建为加密表空间。ENCRYPTED 列必须显示值 YES
SELECT TABLESPACE_NAME , ENCRYPTED FROM DBA_TABLESPACES;
面向为 TDE 表空间配置的数据库配置 Windchill
1. 在上一部分中创建的数据库上安装 Windchill
2. 成功安装后,停止 Windchill
3. 打开 Windchill shell。
4. Windchill shell 中,运行以下命令来设置和传播所需的配置特性:
xconfmanager -s wt.pom.dbConnectionPropertiesNameList="oracle.net. encryption_client,oracle.net.encryption_types_client,oracle.net. crypto_checksum_client,oracle.net.crypto_checksum_types_client" -t "db/db.properties"
xconfmanager -s wt.pom.dbConnectionPropertiesValueList="ACCEPTED, ( AES256 ), ACCEPTED,( MD5 )" -t "db/db.properties"
xconfmanager -p
* 
在配置 oracle.net.encryption_client 和 oracle.net.crypto_checksum_client 时,可使用以下任一值:
REJECTED
ACCEPTED
REQUESTED
REQUIRED
默认值为 ACCEPTED。有关详细信息,请参阅 Oracle Database Advanced Security Administrator's Guide
5. 启动 Windchill