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.
-
L'opzione
encryptionè supportata solo quando si esportano dati da Autonomous AI Database nello storage degli oggetti in formato CSV, JSON o XML. -
Quando l'esportazione include sia la crittografia che la compressione, l'ordine delle operazioni è: prima i dati vengono compressi, poi i dati vengono cifrati e poi vengono caricati nello storage degli oggetti.
-
Esistono due metodi di cifratura supportati:
-
Utilizzo di una funzione definita dall'utente.
-
Uso di un algoritmo di cifratura specificato
DBMS_CRYPTO.Per informazioni sulle funzioni e sulle procedure di cifratura e decifrazione, vedere DBMS_CRYPTO.
-
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).
-
Connettersi all'istanza di Autonomous AI Database.
-
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
usernameepassworddipendono dal servizio di storage degli oggetti cloud in uso.Per ulteriori informazioni, vedere Procedura CREDENTIAL.
-
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 campopasswordin una credenziale creata conDBMS_CLOUD.CREATE_CREDENTIAL.Ad esempio:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'ENC_CRED_NAME', username => 'Any_username', password => 'password' ); END; / -
Eseguire
DBMS_CLOUD.EXPORT_DATA.Utilizzare il parametro
formatcon l'opzioneencryption. Il tipoencryptionspecifica l'algoritmo di cifraturaDBMS_CRYPTOda utilizzare per cifrare i dati della tabella e il valorecredential_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
EMPLOYEESin 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 ebucketnameè 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.
-
È possibile utilizzare
DBMS_CLOUD.COPY_DATAoDBMS_CLOUD.COPY_COLLECTIONcon le stesse opzioni dell'algoritmo di cifratura e la chiave per decifrare i file.Per ulteriori informazioni, vedere Decifra e carica dati mediante gli algoritmi DBMS_CRYPTO.
-
È possibile eseguire query sui dati in una tabella esterna fornendo le stesse opzioni dell'algoritmo di cifratura e la chiave per decifrare i file, con una delle procedure seguenti:
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEPer
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEquesta opzione è applicabile solo ai file di storage degli oggetti.
Per ulteriori informazioni, vedere Decifra e carica dati mediante gli algoritmi DBMS_CRYPTO.
-
-
In un sistema che non è un Autonomous AI Database è possibile utilizzare il pacchetto
DBMS_CRYPTOcon le stesse opzioni di algoritmo e la chiave per decifrare i file.Tenere presente che la chiave viene memorizzata come
VARCHAR2nella credenziale in Autonomous AI Database, maDBMS_CRYPTOutilizza il tipoRAWper il parametro chiave.Per ulteriori informazioni sugli algoritmi di cifratura, vedere Algoritmi DBMS_CRYPTO.
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).
-
Connettersi all'istanza di Autonomous AI Database.
-
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
usernameepassworddipendono dal servizio di storage degli oggetti cloud in uso.Per ulteriori informazioni, vedere Procedura CREDENTIAL.
-
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. -
Eseguire
DBMS_CLOUD.EXPORT_DATAcon il parametroformat, includere l'opzioneencryptione specificare un valoreuser_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
EMPed esportati come file CSV nello storage degli oggetti cloud. Il parametroformatcon il valoreencryptionspecifica 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 ebucketnameè 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