Daten beim Exportieren in Object Storage verschlüsseln

Sie können Tabellendaten beim Export in Object Storage verschlüsseln.

Verwenden Sie den Parameter format und die Option encryption mit DBMS_CLOUD.EXPORT_DATA, um Daten zu verschlüsseln, wenn Sie aus einer autonomen KI-Datenbank in Object Storage exportieren.

Beachten Sie Folgendes, wenn Sie verschlüsselte Daten in Object Storage exportieren:

Daten mit DBMS_CRYPTO-Verschlüsselungsalgorithmen verschlüsseln

Zeigt die Schritte zum Verschlüsseln von Daten mit Verschlüsselungsalgorithmen DBMS_CRYPTO beim Export in Cloud Object Storage an.

Führen Sie die folgenden Schritte aus, um Daten beim Export in Cloud Object Storage zu verschlüsseln (in diesem Beispiel werden Tabellendaten in eine CSV-Datei exportiert):

  1. Stellen Sie eine Verbindung zur autonomen KI-Datenbankinstanz her.

  2. Speichern Sie Ihre Zugangsdaten für Cloud-Objektspeicher mit DBMS_CLOUD.CREATE_CREDENTIAL.

    Beispiel:

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
         credential_name => 'OBJ_STORE_CRED',
         username        => 'user1@example.com',
         password        => 'password'
       );
     END;
     /
    

    Die Werte, die Sie für username und password angeben, hängen vom verwendeten Cloud-Objektspeicherservice ab.

    Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

  3. Erstellen Sie Zugangsdaten zum Speichern des Verschlüsselungsschlüssels (den Verschlüsselungsschlüssel, der zum Verschlüsseln von Daten verwendet werden soll).

    Wenn Sie Daten mit DBMS_CRYPTO-Verschlüsselungsalgorithmen verschlüsseln, speichern Sie den Verschlüsselungsschlüssel in Zugangsdaten. Der Schlüssel wird im Feld password in den Zugangsdaten angegeben, die Sie mit DBMS_CLOUD.CREATE_CREDENTIAL erstellen.

    Beispiel:

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL (
         credential_name => 'ENC_CRED_NAME',
         username        => 'Any_username',
         password        => 'password'
       );
     END;
     /
    
  4. Führen Sie DBMS_CLOUD.EXPORT_DATA aus.

    Verwenden Sie den Parameter format mit der Option encryption. Der Typ encryption gibt den Verschlüsselungsalgorithmus DBMS_CRYPTO an, der zum Verschlüsseln der Tabellendaten verwendet werden soll, und der Wert credential_name sind Zugangsdaten, die das Secret angeben (Verschlüsselungsschlüssel).

    Beispiel:

     BEGIN
         DBMS_CLOUD.EXPORT_DATA (
             credential_name => 'OBJ_STORE_CRED',
             file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namepace-string/b/bucketname/o/encrypted.csv',
             query           => 'SELECT * FROM ADMIN.employees',
             format          => json_object(
                    'type' value 'csv',
                    'encryption' value  json_object(
                            'type' value DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5,
                            'credential_name' value 'ENC_CRED_NAME'))
           );
     END;
     /
    

    Dadurch werden die Daten aus der Tabelle EMPLOYEES verschlüsselt und in eine CSV-Datei exportiert.

    Weitere Informationen zu Verschlüsselungsalgorithmen finden Sie unter DBMS_CRYPTO Algorithmen.

    In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Weitere Informationen finden Sie unter Prozedur EXPORT_DATA und Optionen für das DBMS_CLOUD Packageformat für EXPORT_DATA.

Nachdem Sie Dateien mit DBMS_CLOUD.EXPORT_DATA verschlüsselt haben und die Dateien mit DBMS_CRYPTO-Verschlüsselungsalgorithmen verschlüsseln, haben Sie die folgenden Optionen zum Verwenden oder Importieren der exportierten Dateien:

Daten mit einer benutzerdefinierten Verschlüsselungsfunktion verschlüsseln

Zeigt die Schritte zum Verschlüsseln von Daten mit einer benutzerdefinierten Verschlüsselungsfunktion beim Export in Cloud Object Storage an.

Führen Sie die folgenden Schritte aus, um Daten beim Export in Cloud Object Storage zu verschlüsseln (in diesem Beispiel werden Tabellendaten in eine CSV-Datei exportiert):

  1. Stellen Sie eine Verbindung zur autonomen KI-Datenbankinstanz her.

  2. Speichern Sie Ihre Zugangsdaten für Cloud-Objektspeicher mit DBMS_CLOUD.CREATE_CREDENTIAL.

    Beispiel:

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
         credential_name => 'OBJ_STORE_CRED',
         username        => 'user1@example.com',
         password        => 'password'
       );
     END;
     /
    

    Die Werte, die Sie für username und password angeben, hängen vom verwendeten Cloud-Objektspeicherservice ab.

    Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

  3. Erstellen Sie eine benutzerdefinierte Callback-Funktion zum Verschlüsseln von Daten.

    Beispiel:

     CREATE OR REPLACE FUNCTION encryption_func (data IN BLOB)
       RETURN BLOB
       IS
           l_encrypted_data BLOB;
            BEGIN
          DBMS_LOB.CREATETEMPORARY (l_encrypted_data, TRUE, DBMS_LOB.CALL);
          DBMS_CRYPTO.ENCRYPT (
              dst => l_encrypted_data,
              src => data,
              typ => DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5,
              key => 'encryption key'
           );
          RETURN l_encrypted_data;
     END encryption_func;
     /
    

    Dadurch wird die Verschlüsselungsfunktion ENCRYPTION_FUNC erstellt. Diese Funktion verschlüsselt Daten mit einem Stream- oder Block-Cipher mit einem vom Benutzer bereitgestellten Schlüssel.

    Hinweis: Sie müssen einen Verschlüsselungsschlüssel erstellen, der als Wert im Parameter KEY verwendet werden soll. Weitere Informationen zum Generieren des Verschlüsselungsschlüssels finden Sie unter DBMS_CRYPTO Operational Notes.

  4. Führen Sie DBMS_CLOUD.EXPORT_DATA mit dem Parameter format aus, nehmen Sie die Option encryption auf, und geben Sie eine user_defined_function an.

    Beispiel:

     BEGIN
           DBMS_CLOUD.EXPORT_DATA (
             credential_name => 'OBJ_STORE_CRED',
             file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namepace-string/b/bucketname/o/encrypted.csv',
             query           => 'SELECT * FROM ADMIN.emp',
             format          => json_object(
                                   'type' value 'csv',
                                   'encryption' value json_object('user_defined_function' value 'admin.encryption_func'))
           );
     END;
     /
    

    Dadurch werden die Daten aus der angegebenen Abfrage der Tabelle "on" EMP verschlüsselt, und die Daten werden als CSV-Datei in Cloud Object Storage exportiert. Der Parameter format mit dem Wert encryption gibt die benutzerdefinierte Verschlüsselungsfunktion an, die zur Verschlüsselung der Daten verwendet werden soll.

    Hinweis: Sie benötigen die Berechtigung EXECUTE für die Verschlüsselungsfunktion.

    In diesem Beispiel ist namespace-string der Oracle Cloud Infrastructure-Objektspeicher-Namespace und bucketname der Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.

    Weitere Informationen finden Sie unter Prozedur EXPORT_DATA und Optionen für das DBMS_CLOUD Packageformat für EXPORT_DATA.

Verwandte Inhalte

Daten beim Importieren aus Object Storage entschlüsseln