暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

20C 新特性 设置表空间的默认加密算法

原创 由迪 2020-06-02
1213

关于创建加密的表空间
要创建加密的表空间,可以使用CREATE TABLESPACESQL语句。
您必须具有CREATE TABLESPACE系统特权才能创建加密的表空间。
您可以使用Oracle Data Pump将数据导入到加密的表空间中。您也可以使用SQL语句(例如CREATE TABLE…AS SELECT…或)ALTER TABLE…MOVE…将数据移动到加密的表空间中。该CREATE TABLE…AS SELECT…语句从现有表创建表。该ALTER TABLE…MOVE…语句将表移动到加密的表空间中。
出于安全原因,您不能使用该NO SALT选项加密表空间。
您可以查询和数据字典视图的ENCRYPTED列,以验证表空间是否已加密。 DBA_TABLESPACES USER_TABLESPACES。

创建一个加密的表空间
要创建加密的表空间,必须将CREATE TABLESPACE语句与ENCRYPTION USING子句一起使用。
CREATE TABLESPACE使用其加密子句运行该语句。
例如:

CREATE TABLESPACE encrypt_ts
  DATAFILE '$ORACLE_HOME/dbs/encrypt_df.dbf' SIZE 1M
  ENCRYPTION USING 'AES256' ENCRYPT;

此范例中:
ENCRYPTION USING ‘AES256’ ENCRYPT指定加密算法和加密的密钥长度。该ENCRYPT子句对表空间进行加密。将此设置括在单引号(’’)中。密钥长度包含在算法名称中。如果未指定加密算法,则使用默认的加密算法AES128。

创建使用AES192的加密表空间

CREATE TABLESPACE securespace_1
DATAFILE '/home/user/oradata/secure01.dbf'
SIZE 150M
ENCRYPTION USING 'AES192' ENCRYPT;

创建使用默认算法的加密表空间

您可以使用CREATE TABLESPACESQL语句创建使用默认算法的加密表空间。
创建一个名为的表空间securespace_2。由于未指定加密算法,因此使用默认的加密算法(AES128)。密钥长度为128位。
您不能加密现有表空间。

CREATE TABLESPACE securespace_2
DATAFILE '/home/user/oradata/secure01.dbf'
SIZE 150M
ENCRYPTION ENCRYPT;

设置表空间的默认加密算法

该TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM动态参数定义为将来的表空间创建操作的默认加密算法。
TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM适用于离线和在线表空间加密操作。它也适用于由ENCRYPT_NEW_TABLESPACES参数设置的将来的加密表空间。在多租户环境中,可以TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM在根目录或单个PDB中进行设置。
输入以下ALTER SYSTEM语句:

ALTER SYSTEM SET TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM = value ;

以上语句中,value可以是以下加密算法之一:AES128,AES192,AES256,3DES168,ARIA128,ARIA192,ARIA256,SEED128,和GOST256。默认值为AES128。或者,您可以TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM在init.ora文件中将其设置为初始化参数。

加密将来的表空间
您可以将Oracle数据库配置为自动加密将要创建的将来的表空间。
关于加密将来的表空间
加密将来的表空间的功能可以帮助防止Oracle Cloud环境中的数据泄露。
设置要加密的将来表空间
您可以设置ENCRYPT_NEW_TABLESPACES数据库初始化参数以自动加密您创建的将来表空间。

关于加密将来的表空间
加密将来的表空间的功能可以帮助防止Oracle Cloud环境中的数据泄露。
在ENCRYPT_NEW_TABLESPACES数据库初始化参数控制未来数据库的加密方式。
您可以完全在Oracle Cloud中创建和运行Oracle数据库。由于此配置将客户的数据托管在云中,因此Oracle建议您尽可能启用加密。长期目标是加密Oracle Cloud中的所有数据。另外,您既可以在云中也可以在本地拥有数据库。
在Oracle Cloud环境中,当您在Oracle Cloud和本地环境中创建加密的表空间时,可能会发生以下情况:
您在Oracle Cloud中创建了一个测试数据库,并且使用了将ENCRYPT_NEW_TABLESPACE参数设置为自动创建加密后的Cloud数据库的方式来加密表空间。但是,您可能没有意识到Advanced Security Option许可证将加密的数据库的许可在你的本地数据库中。

您创建一个混合定义者的​​权限环境,其中主数据库位于内部,备用数据库位于Oracle Cloud上。如果进行了切换操作,则新的主数据库位于Oracle Cloud上。如果新表空间被透明加密,则可能会发生与该列表中第一项类似的情况。例如,假设您没有高级安全选件(ASO)许可证,并且在Oracle Cloud中具有自动加密的表空间。本地备用数据库也会自动加密。在这种情况下,由于您没有ASO许可证,因此无法使用备用数据库。要解决此问题,请将设置ENCRYPT_NEW_TABLESPACES为DDL,以防止在Oracle Cloud中加密表空间。

置将来的表空间进行加密

您可以设置ENCRYPT_NEW_TABLESPACES数据库初始化参数以自动加密您创建的将来的表空间。

输入以下ALTER SYSTEM语句:

ALTER SYSTEM SET ENCRYPT_NEW_TABLESPACES = value ;

在此范例中,value可以是:

CLOUD_ONLYAES128如果您未指定SQL语句的ENCRYPTION子句CREATE TABLESPACE,或者未指定由TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHMdynamic参数指定的算法,则使用算法透明地加密Cloud中的表空间。它仅适用于Oracle Cloud环境。如果您在内部创建表空间,则它将遵循CREATE TABLESPACE您输入的语句规范。例如,如果省略该ENCRYPTION子句,则表空间是未加密创建的。如果包含此子句并使用其他算法,则表空间将使用该算法。
CLOUD_ONLY是默认值。
ALWAYS 对于Cloud和前提方案,如果省略的子句,则使用AES128算法或TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM动态参数指定的算法自动对表空间进行加密。 ENCRYPTIONCREATE TABLESPACE
ENCRYPTION 但是,如果确实提供该子句,则您指定的算法优先于AES128。
DDL对于Oracle Cloud和本地环境,都使用的ENCRYPTION子句的指定设置对表空间进行加密CREATE TABLESPACE。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论