Cifrado de datos al exportar a Object Storage

Puede cifrar los datos de la tabla al exportarlos a Object Storage.

Utilice el parámetro format y la opción encryption con DBMS_CLOUD.EXPORT_DATA para cifrar los datos al exportar de la base de datos de IA autónoma a Object Storage.

Tenga en cuenta lo siguiente al exportar datos cifrados a Object Storage:

Cifrado de datos mediante algoritmos de cifrado DBMS_CRYPTO

Muestra los pasos para cifrar datos mediante algoritmos de cifrado DBMS_CRYPTO al exportar a Cloud Object Storage.

Realice los siguientes pasos para cifrar los datos al exportar a Cloud Object Storage (en este ejemplo se exportan los datos de la tabla a un archivo CSV):

  1. Conéctese a su instancia de base de datos de IA autónoma.

  2. Almacene su credencial de Cloud Object Storage mediante DBMS_CLOUD.CREATE_CREDENTIAL.

    Por ejemplo:

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

    Los valores que proporcione para username y password dependen del servicio de Cloud Object Storage que utilice.

    Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.

  3. Cree una credencial para almacenar la clave de cifrado (la clave de cifrado que se utilizará para cifrar los datos).

    Al cifrar datos mediante algoritmos de cifrado DBMS_CRYPTO, se almacena la clave de cifrado en una credencial. La clave se especifica en el campo password de una credencial que cree con DBMS_CLOUD.CREATE_CREDENTIAL.

    Por ejemplo:

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

    Utilice el parámetro format con la opción encryption. El tipo encryption especifica el algoritmo de cifrado DBMS_CRYPTO que se va a utilizar para cifrar los datos de la tabla y el valor credential_name es la credencial que especifica el secreto (clave de cifrado).

    Por ejemplo:

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

    Esto cifra y exporta los datos de la tabla EMPLOYEES a un archivo CSV.

    Consulte Algoritmos DBMS_CRYPTO para obtener más información sobre los algoritmos de cifrado.

    In this example, namespace-string is the Oracle Cloud Infrastructure object storage namespace and bucketname is the bucket name. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

    Consulte Procedimiento EXPORT_DATA y Opciones de formato de paquete DBMS_CLOUD para EXPORT_DATA para obtener más información.

Después de cifrar archivos con DBMS_CLOUD.EXPORT_DATA, cuando utiliza algoritmos de cifrado DBMS_CRYPTO para cifrar los archivos, tiene estas opciones para utilizar o importar los archivos que ha exportado:

Cifrado de datos con una función de cifrado definida por el usuario

Muestra los pasos para cifrar datos mediante una función de cifrado definida por el usuario al exportar a Cloud Object Storage.

Realice los siguientes pasos para cifrar los datos al exportar a Cloud Object Storage (en este ejemplo se exportan los datos de la tabla a un archivo CSV):

  1. Conéctese a su instancia de base de datos de IA autónoma.

  2. Almacene su credencial de Cloud Object Storage mediante DBMS_CLOUD.CREATE_CREDENTIAL.

    Por ejemplo:

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

    Los valores que proporcione para username y password dependen del servicio de Cloud Object Storage que utilice.

    Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.

  3. Cree una función de devolución de llamada definida por el usuario para cifrar los datos.

    Por ejemplo:

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

    Esto crea la función de cifrado ENCRYPTION_FUNC. Esta función cifra los datos mediante un cifrado de flujo o bloque con una clave proporcionada por el usuario.

    Nota: Debe crear una clave de cifrado para que se utilice como valor en el parámetro KEY. Consulte las Notas operativas de DBMS_CRYPTO para obtener más información sobre la generación de la clave de cifrado.

  4. Ejecute DBMS_CLOUD.EXPORT_DATA con el parámetro format, incluya la opción encryption y especifique un user_defined_function.

    Por ejemplo:

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

    Esto cifra los datos de la consulta especificada en la tabla EMP y exporta los datos como un archivo CSV en Cloud Object Storage. El parámetro format con el valor encryption especifica la función de cifrado definida por el usuario que se utilizará para cifrar los datos.

    Nota: Debe tener el privilegio EXECUTE en la función de cifrado.

    In this example, namespace-string is the Oracle Cloud Infrastructure object storage namespace and bucketname is the bucket name. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.

    Consulte Procedimiento EXPORT_DATA y Opciones de formato de paquete DBMS_CLOUD para EXPORT_DATA para obtener más información.

Contenido relacionado

Descifrar datos al importarlos desde Object Storage