Daten in der Quelldatenbank verschlüsseln

Transparente Datenverschlüsselung (TDE) verschlüsselt Daten transparent in einem Oracle Database. Es stoppt nicht autorisierte Versuche des Betriebssystems, auf Datenbankdaten zuzugreifen, die in Dateien gespeichert sind, ohne Auswirkungen darauf zu haben, wie Anwendungen mit SQL auf die Daten zugreifen.TDE ist vollständig in Oracle Database integriert und kann ganze Datenbankbackups (RMAN), Data Pump-Exporte, ganze Anwendungs-Tablespaces oder bestimmte sensible Spalten verschlüsseln. Verschlüsselte Daten bleiben in der Datenbank verschlüsselt, unabhängig davon, ob sie sich in Tablespace-Speicherdateien, temporären Tablespaces, Undo Tablespaces oder anderen Dateien wie Redo Logs befinden.

Bestimmen, ob TDE in der Quelldatenbank aktiviert ist

Wenn Transparente Datenverschlüsselung (TDE) in Ihrer Quelldatenbank nicht aktiviert ist, werden die Daten nicht verschlüsselt, wenn Sie die Datenbank in Oracle Cloud Infrastructure (OCI) oder während des Disaster Recoverys migrieren. Sie müssen die unverschlüsselten Daten manuell verschlüsseln. Einmal in OCI werden alle neuen Daten automatisch verschlüsselt.

  1. Bestimmen Sie, ob der Tablespace verschlüsselt ist.
    SQL> select tablespace_name, encrypted from dba_tablespaces;

    Wenn der Tablespace nicht verschlüsselt ist, sieht die Ausgabe wie folgt aus:

    TABLESPACE_NAME 	       		ENC
    ------------------------------ ---
    SYSTEM                          NO
    SYSAUX                          NO
    UNDOTBS1                        NO
    TEMP                            NO
    USERS			      NO
  2. Suchen Sie die zugehörigen Datenbankdatendateien (. dbf) im Dateisystem.
    SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

    Die Ausgabe sieht wie folgt aus:

    TABLESPACE_NAME
    ------------------------------
    FILE_NAME
    
    SYSTEM
    /opt/oracle/oradata/ORCLCDB/system01.dbf
    
    SYSAUX
    /opt/oracle/oradata/ORCLCDB/sysaux01.dbf
    
    UNDOTBS1
    /opt/oracle/oradata/ORCLCDB/undotbs01.dbf
    
    USERS
    /opt/oracle/oradata/ORCLCDB/users01.dbf

TDE-Verschlüsselung in Quelldatenbank aktivieren

Mit Transparent Data Encryption (TDE) können Sie sensible Daten verschlüsseln, die in Tabellen und Tablespaces gespeichert sind. Verschlüsselte Daten werden transparent für einen Datenbankbenutzer oder eine Anwendung entschlüsselt, die Zugriff auf Daten hat.

  1. Gehen Sie in das Verzeichnis $ORACLE_BASE in Ihrer Quelldatenbank.
    bash-4.2$ pwd
    /opt/oracle/admin/ORCLCDB
  2. Erstellen Sie ein Verzeichnis mit dem Namen wallet.
    $ mkdir wallet
  3. Erstellen Sie das Wallet zusammen mit einem sicheren Kennwort, das eine Mischung aus alphanumerischen Zeichen verwendet.
    Dieser Schritt erstellt und öffnet das Wallet. Nach dem Öffnen der Datenbank bleibt das Wallet geöffnet, bis das Wallet explizit geschlossen ist oder die Datenbank heruntergefahren wird, zu dem Zeitpunkt wird das Wallet automatisch geschlossen.
    SQL> alter system set encryption key identified by "wallet_password";
  4. Öffnen Sie ein geschlossenes Wallet erneut, nachdem die Datenbank neu gestartet wurde.
    SQL> alter system set wallet open identified by "wallet_password";
  5. Tablespace verschlüsseln
    Der folgende Code verwendet AES-128-Verschlüsselung.
    alter tablespace system encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/system01.dbf','/opt/oracle/oradata/ORCLCDB/system01_enc.dbf');
    
    alter tablespace sysaux encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/sysaux01.dbf','/opt/oracle/oradata/ORCLCDB/sysaux01_enc.dbf');
    
    alter tablespace undotbs1 encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/undotbs01.dbf','/opt/oracle/oradata/ORCLCDB/undotbs01_enc.dbf');
    
    alter tablespace users encryption online using 'aes128' encrypt file_name_convert=('/opt/oracle/oradata/ORCLCDB/users01.dbf','/opt/oracle/oradata/ORCLCDB/users01_enc.dbf');
    
  6. Prüfen Sie, ob der Tablespace verschlüsselt ist.
    SQL> select tablespace_name, encrypted from dba_tablespaces;

    Die Ausgabe sieht wie folgt aus:

    TABLESPACE_NAME 	       ENC
    ------------------------------ ---
    SYSTEM			    YES
    SYSAUX			    YES
    UNDOTBS1                       YES
    TEMP			      NO
    USERS			     YES
  7. Prüfen Sie, ob die zugehörigen Datenbankdatendateien (. dbf ) im Dateisystem verschlüsselt sind.
    SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;

    Die Ausgabe sieht wie folgt aus:

    TABLESPACE_NAME
    ------------------------------
    FILE_NAME
    
    SYSTEM
    /opt/oracle/oradata/ORCLCDB/system01_enc.dbf
    
    SYSAUX
    /opt/oracle/oradata/ORCLCDB/sysaux01_enc.dbf
    
    UNDOTBS1
    /opt/oracle/oradata/ORCLCDB/undotbs01_enc.dbf
    
    USERS
    /opt/oracle/oradata/ORCLCDB/users01_enc.dbf