原文地址:Future-proof Your Encrypted Database During Upgrade
原文地址:Daniel Over
在 Oracle Database 19c 中,已弃用使用sqlnet.ora来定义密钥库(或钱包)位置。相反,您应该使用数据库参数。如果您使用 AutoUpgrade 升级到 Oracle Database 19c,它会变得容易得多,现在就让 AutoUpgrade 为您完成工作。
如何操作
如果您指示 AutoUpgrade 使用新的加密参数,它不仅会将参数添加到 SPFile,还会将密钥库文件复制到定义的位置。这是你必须做的:
- 1、创建一个包含 和 定义的文本WALLET_ROOT文件TDE_CONFIGURATION。我称之为/tmp/au-pfile-tde。或者,更改密钥库的位置以适合您的组织。
WALLET_ROOT='/etc/oracle/keystores/$ORACLE_SID' TDE_CONFIGURATION='KEYSTORE_CONFIGURATION=FILE'
复制
- 2、指示 AutoUpgrade在升级期间和升级后添加这些参数。将以下内容添加到您的 AutoUpgrade 配置文件中:
upg1.add_during_upgrade_pfile=/tmp/au-pfile-tde upg1.add_after_upgrade_pfile=/tmp/au-pfile-tde
复制
AutoUpgrade 将检测到您正在更改密钥库位置,并会在适当的时间将密钥库文件复制到新位置。
重要提示:当您使用WALLET_ROOT密钥库时,文件应始终存储在名为tde的子文件夹中。这意味着密钥库文件将在/etc/oracle/keystores/$ORACLE_SID/tde中结束。您不应手动将/tdeWALLET_ROOT添加到. 数据库在查找密钥库时会自动执行此操作。
现在是什么
由于您已将密钥库文件移动到新位置,因此您应该注意以下事项:
您可以删除sqlnet.ora参数ENCRYPTION_WALLET_LOCATION。它不再使用了。
存储在旧位置(由 定义ENCRYPTION_WALLET_LOCATION)中的密钥库文件可以手动移动到备份位置。我绝不会建议您删除密钥库文件——绝不会!而是将旧文件移动到备份位置并保留在那里。
密钥库文件被视为关键文件并包含敏感信息,因此请确保新位置具有与旧位置相同的安全措施,例如:
- 限制文件权限
- 审计
- 备份
背景
传统上,如果您有一个加密数据库,则需要使用参数在sqlnet.oraENCRYPTION_WALLET_LOCATION中定义密钥库位置。你可以把它设置成这样:
ENCRYPTION_WALLET_LOCATION= (SOURCE= (METHOD=FILE) (METHOD_DATA= (DIRECTORY=/etc/oracle/keystores/$ORACLE_SID)))
复制
由于许多原因,sqlnet.ora不是该参数的好位置,尤其是在引入隔离密钥库模式后,需要一种新方法。
传入WALLET_ROOT和TDE_CONFIGURATION数据库初始化参数。前者WALLET_ROOT定义了密钥库的位置。后者TDE_CONFIGURATION定义了正在使用的密钥库类型。通常,它被设置为FILE– 当您使用软件密钥库(操作系统中的文件)时。OKV但如果您是 Oracle Key Vault ,也可能是这样。对于软件密钥库,您可以将其设置为:
ALTER SYSTEM SET WALLET_ROOT='/etc/oracle/keystores/$ORACLE_SID' SCOPE=SPFILE; ALTER SYSTEM SET TDE_CONFIGURATION='KEYSTORE_CONFIGURATION=FILE' SCOPE=SPFILE; SHUTDOWN IMMEDIATE STARTUP
复制
WALLET_ROOT现在,数据库使用更平滑的参数找到密钥库位置。
从 Oracle Database 19c 开始,不推荐使用sqlnet.ora配置密钥库,并且与任何其他不推荐使用的功能一样,您应该转向完全受支持的替代方案。