Criptografar Dados Durante a Exportação para o Object Storage

Você pode criptografar dados da tabela durante a exportação para o Object Storage.

Use o parâmetro format e a opção encryption com DBMS_CLOUD.EXPORT_DATA para criptografar dados quando você exportar do Autonomous AI Database para o Object Storage.

Observe o seguinte quando você exporta dados criptografados para o serviço Object Storage:

Criptografar Dados Usando Algoritmos de Criptografia DBMS_CRYPTO

Mostra as etapas para criptografar dados usando algoritmos de criptografia DBMS_CRYPTO durante a exportação para o Cloud Object Storage.

Execute as seguintes etapas para criptografar dados durante a exportação para o Cloud Object Storage (este exemplo exporta dados da tabela para um arquivo CSV):

  1. Conecte-se à sua instância do Autonomous AI Database.

  2. Armazene a sua credencial do Cloud Object Storage usando DBMS_CLOUD.CREATE_CREDENTIAL.

    Por exemplo:

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

    Os valores fornecidos para username e password dependem do serviço de Cloud Object Storage que você está usando.

    Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.

  3. Crie uma credencial para armazenar a chave de criptografia (a chave de criptografia a ser usada para criptografar dados).

    Ao criptografar dados usando algoritmos de criptografia DBMS_CRYPTO, você armazena a chave de criptografia em uma credencial. A chave é especificada no campo password em uma credencial criada com DBMS_CLOUD.CREATE_CREDENTIAL.

    Por exemplo:

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

    Use o parâmetro format com a opção encryption. O tipo encryption especifica o algoritmo de criptografia DBMS_CRYPTO a ser usado para criptografar os dados da tabela, e o valor credential_name é uma credencial que especifica o segredo (chave de criptografia).

    Por exemplo:

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

    Isso criptografa e exporta os dados da tabela EMPLOYEES para um arquivo CSV.

    Consulte Algoritmos DBMS_CRYPTO para obter mais informações sobre algoritmos de criptografia.

    Neste exemplo, namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e bucketname é o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

    Consulte Procedimento EXPORT_DATA e Opções de Formato de Pacote DBMS_CLOUD para EXPORT_DATA para obter mais informações.

Depois de criptografar arquivos com o DBMS_CLOUD.EXPORT_DATA, ao usar algoritmos de criptografia DBMS_CRYPTO para criptografar os arquivos, você tem estas opções para usar ou importar os arquivos exportados:

Criptografar Dados com uma Função de Criptografia Definida pelo Usuário

Mostra as etapas para criptografar dados usando uma função de criptografia definida pelo usuário durante a exportação para o Cloud Object Storage.

Execute as seguintes etapas para criptografar dados durante a exportação para o Cloud Object Storage (este exemplo exporta dados da tabela para um arquivo CSV):

  1. Conecte-se à sua instância do Autonomous AI Database.

  2. Armazene a sua credencial do Cloud Object Storage usando DBMS_CLOUD.CREATE_CREDENTIAL.

    Por exemplo:

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

    Os valores fornecidos para username e password dependem do serviço de Cloud Object Storage que você está usando.

    Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.

  3. Crie uma função de callback definida pelo usuário para criptografar dados.

    Por exemplo:

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

    Isso cria a função de criptografia ENCRYPTION_FUNC. Essa função criptografa dados usando uma cifra de fluxo ou bloco com uma chave fornecida pelo usuário.

    Observação: crie uma chave de criptografia para ser usada como um valor no parâmetro KEY. Consulte Observações Operacionais DBMS_CRYPTO para obter mais informações sobre como gerar a chave de criptografia.

  4. Execute DBMS_CLOUD.EXPORT_DATA com o parâmetro format, inclua a opção encryption e especifique uma user_defined_function.

    Por exemplo:

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

    Isso criptografa os dados da consulta especificada na tabela EMP e os exporta como um arquivo CSV no Cloud Object Storage. O parâmetro format com o valor encryption especifica a função de criptografia definida pelo usuário a ser usada para criptografar os dados.

    Observação: Você deve ter o privilégio EXECUTE na função de criptografia.

    Neste exemplo, namespace-string é o namespace do Oracle Cloud Infrastructure Object Storage e bucketname é o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

    Consulte Procedimento EXPORT_DATA e Opções de Formato de Pacote DBMS_CLOUD para EXPORT_DATA para obter mais informações.

Conteúdo Relacionado

Descriptografar Dados Durante a Importação do Serviço Object Storage