Chiffrer les données lors de l'exportation vers le stockage d'objets

Vous pouvez ainsi chiffrer les données des tables lors de l'exportation vers le service de stockage d'objets.

Utilisez le paramètre format et l'option encryption avec DBMS_CLOUD.EXPORT_DATA pour chiffrer les données lorsque vous exportez de la base de données du service d'intelligence artificielle autonome vers le stockage d'objets.

Notez les points suivants lorsque vous exportez des données chiffrées vers le service de stockage d'objets :

Chiffrer les données à l'aide des algorithmes de chiffrement DBMS_CRYPTO

Affiche les étapes de chiffrement des données à l'aide d'algorithmes de chiffrement DBMS_CRYPTO lors de l'exportation vers le service de stockage d'objets en nuage.

Exécutez les étapes suivantes pour chiffrer les données lors de l'exportation vers le service de stockage d'objets en nuage (cet exemple exporte les données de table vers un fichier CSV) :

  1. Connectez-vous à votre instance de base de données Autonomous AI Database.

  2. Stockez vos données d'identification pour le service de stockage d'objets en nuage à l'aide de DBMS_CLOUD.CREATE_CREDENTIAL.

    Par exemple :

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

    Les valeurs que vous indiquez pour username et password dépendent du service de stockage d'objets en nuage que vous utilisez .

    Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.

  3. Créez des données d'identification pour stocker la clé de chiffrement (la clé de chiffrement à utiliser pour chiffrer les données).

    Lorsque vous chiffrez des données à l'aide d'algorithmes de chiffrement DBMS_CRYPTO, vous stockez la clé de chiffrement dans des données d'identification. La clé est spécifiée dans le champ password dans des données d'identification que vous créez avec DBMS_CLOUD.CREATE_CREDENTIAL.

    Par exemple :

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL (
         credential_name => 'ENC_CRED_NAME',
         username        => 'Any_username',
         password        => 'password'
       );
     END;
     /
    
  4. Exécutez DBMS_CLOUD.EXPORT_DATA.

    Utilisez le paramètre format avec l'option encryption. Le type encryption spécifie l'algorithme de chiffrement DBMS_CRYPTO à utiliser pour chiffrer les données de la table et la valeur credential_name est des données d'identification qui spécifient la clé secrète (clé de chiffrement).

    Par exemple :

     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;
     /
    

    Cela chiffre et exporte les données de la table EMPLOYEES dans un fichier CSV.

    Pour plus d'informations sur les algorithmes de chiffrement, voir Algorithmes DBMS_CRYPTO.

    Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

    Pour plus d'informations, voir Procédure EXPORT_DATA et Options de format d'ensemble DBMS_CLOUD pour EXPORT_DATA.

Après avoir chiffré les fichiers avec DBMS_CLOUD.EXPORT_DATA, lorsque vous utilisez des algorithmes de chiffrement DBMS_CRYPTO pour chiffrer les fichiers, vous disposez des options suivantes pour utiliser ou importer les fichiers que vous avez exportés :

Chiffrer les données à l'aide d'une fonction de chiffrement définie par l'utilisateur

Affiche les étapes de chiffrement des données à l'aide d'une fonction de chiffrement définie par l'utilisateur lors de l'exportation vers le service de stockage d'objets en nuage.

Exécutez les étapes suivantes pour chiffrer les données lors de l'exportation vers le service de stockage d'objets en nuage (cet exemple exporte les données de table vers un fichier CSV) :

  1. Connectez-vous à votre instance de base de données Autonomous AI Database.

  2. Stockez vos données d'identification pour le service de stockage d'objets en nuage à l'aide de DBMS_CLOUD.CREATE_CREDENTIAL.

    Par exemple :

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

    Les valeurs que vous indiquez pour username et password dépendent du service de stockage d'objets en nuage que vous utilisez .

    Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.

  3. Créez une fonction de rappel définie par l'utilisateur pour chiffrer les données.

    Par exemple :

     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;
     /
    

    Cela crée la fonction de chiffrement ENCRYPTION_FUNC. Cette fonction chiffre les données à l'aide d'un chiffrement de flux ou de bloc avec une clé fournie par l'utilisateur.

    Note : Vous devez créer une clé de chiffrement à utiliser comme valeur dans le paramètre KEY. Voir Notes d'exploitation DBMS_CRYPTO pour plus d'informations sur la génération de la clé de chiffrement.

  4. Exécutez DBMS_CLOUD.EXPORT_DATA avec le paramètre format, incluez l'option encryption et spécifiez une valeur user_defined_function.

    Par exemple :

     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;
     /
    

    Cela chiffre les données de l'interrogation spécifiée sur la table EMP et exporte les données sous forme de fichier CSV sur le stockage d'objets en nuage. Le paramètre format avec la valeur encryption spécifie la fonction de chiffrement définie par l'utilisateur à utiliser pour chiffrer les données.

    Note : Vous devez disposer du privilège EXECUTE sur la fonction de chiffrement.

    Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

    Pour plus d'informations, voir Procédure EXPORT_DATA et Options de format d'ensemble DBMS_CLOUD pour EXPORT_DATA.

Contenu connexe

Déchiffrer les données lors de l'importation à partir du stockage d'objets