Cifrare i dati durante l'esportazione nello storage degli oggetti

Puoi cifrare i dati della tabella durante l'esportazione nello storage degli oggetti.

Utilizzare il parametro format e l'opzione encryption con DBMS_CLOUD.EXPORT_DATA per cifrare i dati quando si esegue l'esportazione da Autonomous AI Database allo storage degli oggetti.

Quando si esportano dati cifrati nello storage degli oggetti, tenere presente quanto riportato di seguito.

Cifra i dati mediante gli algoritmi di cifratura DBMS_CRYPTO

Mostra i passi per cifrare i dati utilizzando algoritmi di cifratura DBMS_CRYPTO durante l'esportazione nello storage degli oggetti cloud.

Eseguire i passi riportati di seguito per cifrare i dati durante l'esportazione nello storage degli oggetti cloud (in questo esempio i dati delle tabelle vengono esportati in un file CSV).

  1. Connettersi all'istanza di Autonomous AI Database.

  2. Memorizzare le credenziali dello storage degli oggetti cloud utilizzando DBMS_CLOUD.CREATE_CREDENTIAL.

    Ad esempio:

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

    I valori forniti per username e password dipendono dal servizio di storage degli oggetti cloud in uso.

    Per ulteriori informazioni, vedere Procedura CREDENTIAL.

  3. Creare una credenziale per memorizzare la chiave di cifratura (la chiave di cifratura da utilizzare per la cifratura dei dati).

    Quando si cifrano i dati utilizzando algoritmi di cifratura DBMS_CRYPTO, la chiave di cifratura viene memorizzata in una credenziale. La chiave viene specificata nel campo password in una credenziale creata con DBMS_CLOUD.CREATE_CREDENTIAL.

    Ad esempio:

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

    Utilizzare il parametro format con l'opzione encryption. Il tipo encryption specifica l'algoritmo di cifratura DBMS_CRYPTO da utilizzare per cifrare i dati della tabella e il valore credential_name è una credenziale che specifica il segreto (chiave di cifratura).

    Ad esempio:

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

    In questo modo i dati vengono crittografati ed esportati dalla tabella EMPLOYEES in un file CSV.

    Per ulteriori informazioni sugli algoritmi di cifratura, vedere Algoritmi DBMS_CRYPTO.

    In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    Per ulteriori informazioni, vedere Procedura EXPORT_DATA e Opzioni formato package DBMS_CLOUD per EXPORT_DATA.

Dopo aver cifrato i file con DBMS_CLOUD.EXPORT_DATA, quando si utilizzano algoritmi di cifratura DBMS_CRYPTO per cifrare i file, sono disponibili le opzioni riportate di seguito per l'utilizzo o l'importazione dei file esportati.

Cifrare i dati con una funzione di cifratura definita dall'utente

Mostra i passi per cifrare i dati utilizzando una funzione di cifratura definita dall'utente durante l'esportazione nello storage degli oggetti cloud.

Eseguire i passi riportati di seguito per cifrare i dati durante l'esportazione nello storage degli oggetti cloud (in questo esempio i dati delle tabelle vengono esportati in un file CSV).

  1. Connettersi all'istanza di Autonomous AI Database.

  2. Memorizzare le credenziali dello storage degli oggetti cloud utilizzando DBMS_CLOUD.CREATE_CREDENTIAL.

    Ad esempio:

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

    I valori forniti per username e password dipendono dal servizio di storage degli oggetti cloud in uso.

    Per ulteriori informazioni, vedere Procedura CREDENTIAL.

  3. Creare una funzione di callback definita dall'utente per cifrare i dati.

    Ad esempio:

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

    Questa operazione crea la funzione di cifratura ENCRYPTION_FUNC. Questa funzione crittografa i dati utilizzando una cifra di flusso o blocco con una chiave fornita dall'utente.

    Nota: è necessario creare una chiave di cifratura da utilizzare come valore nel parametro KEY. Per ulteriori informazioni sulla generazione della chiave di cifratura, vedere DBMS_CRYPTO Operational Notes.

  4. Eseguire DBMS_CLOUD.EXPORT_DATA con il parametro format, includere l'opzione encryption e specificare un valore user_defined_function.

    Ad esempio:

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

    In questo modo i dati vengono cifrati dalla query specificata nella tabella EMP ed esportati come file CSV nello storage degli oggetti cloud. Il parametro format con il valore encryption specifica la funzione di cifratura definita dall'utente da utilizzare per la cifratura dei dati.

    Nota: per la funzione di cifratura è necessario disporre del privilegio EXECUTE.

    In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    Per ulteriori informazioni, vedere Procedura EXPORT_DATA e Opzioni formato package DBMS_CLOUD per EXPORT_DATA.

Contenuto correlato

Decifra dati durante l'importazione dallo storage degli oggetti