Crypter les données lors de l'export vers Object Storage

Vous pouvez crypter les données de table lors de l'export vers Object Storage.

Utilisez le paramètre format et l'option encryption avec DBMS_CLOUD.EXPORT_DATA pour crypter les données lorsque vous exportez de la base de données Autonomous AI vers Object Storage.

Lorsque vous exportez des données cryptées vers Object Storage, tenez compte des points suivants :

Crypter les données à l'aide des algorithmes de cryptage DBMS_CRYPTO

Présente les étapes de cryptage des données à l'aide des algorithmes de cryptage DBMS_CRYPTO lors de l'export vers Cloud Object Storage.

Pour crypter les données lors de l'export vers Cloud Object Storage (cet exemple exporte les données de table dans un fichier CSV), procédez comme suit :

  1. Connectez-vous à votre instance Autonomous AI Database.

  2. Stockez vos informations d'identification de stockage d'objet cloud à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL,

    Exemple :

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

    Les valeurs fournies pour username et password dépendent du service Cloud Object Storage que vous utilisez .

    Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

  3. Créez des informations d'identification pour stocker la clé de cryptage (la clé de cryptage à utiliser pour le cryptage des données).

    Lorsque vous cryptez des données à l'aide d'algorithmes de cryptage DBMS_CRYPTO, vous stockez la clé de cryptage dans des informations d'identification. La clé est indiquée dans le champ password dans les informations d'identification que vous créez avec DBMS_CLOUD.CREATE_CREDENTIAL.

    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 indique l'algorithme de cryptage DBMS_CRYPTO à utiliser pour crypter les données de la table. La valeur credential_name correspond aux informations d'identification qui indiquent la clé secrète (clé de cryptage).

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

    Les données de la table EMPLOYEES sont ainsi cryptées et exportées dans un fichier CSV.

    Pour plus d'informations sur les algorithmes de cryptage, reportez-vous à Algorithmes DBMS_CRYPTO.

    Dans cet exemple, namespace-string est l'espace de noms Oracle Cloud Infrastructure Object Storage et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

    Pour plus d'informations, reportez-vous aux sections Procédure EXPORT_DATA et Options de format de package DBMS_CLOUD pour EXPORT_DATA.

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

Crypter les données avec une fonction de cryptage définie par l'utilisateur

Présente les étapes de cryptage des données à l'aide d'une fonction de cryptage définie par l'utilisateur lors de l'export vers Cloud Object Storage.

Pour crypter les données lors de l'export vers Cloud Object Storage (cet exemple exporte les données de table dans un fichier CSV), procédez comme suit :

  1. Connectez-vous à votre instance Autonomous AI Database.

  2. Stockez vos informations d'identification de stockage d'objet cloud à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL,

    Exemple :

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

    Les valeurs fournies pour username et password dépendent du service Cloud Object Storage que vous utilisez .

    Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.

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

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

    La fonction de cryptage ENCRYPTION_FUNC est ainsi créée. Cette fonction crypte les données à l'aide d'un cryptage de flux ou de bloc avec une clé fournie par l'utilisateur.

    Remarque : vous devez créer une clé de cryptage à utiliser comme valeur dans le paramètre KEY. Pour plus d'informations sur la génération de la clé de cryptage, reportez-vous à Notes opérationnelles DBMS_CRYPTO.

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

    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 crypte les données de la requête spécifiée dans la table EMP et les exporte en tant que fichier CSV sur Cloud Object Storage. Le paramètre format avec la valeur encryption indique la fonction de cryptage définie par l'utilisateur à utiliser pour crypter les données.

    Remarque : vous devez disposer du privilège EXECUTE sur la fonction de cryptage.

    Dans cet exemple, namespace-string est l'espace de noms Oracle Cloud Infrastructure Object Storage et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

    Pour plus d'informations, reportez-vous aux sections Procédure EXPORT_DATA et Options de format de package DBMS_CLOUD pour EXPORT_DATA.

Contenu connexe

Décryptage des données lors de l'import à partir d'Object Storage