Chiffrer les données lors de l'exportation vers le stockage d'objets
Vous pouvez ainsi chiffrer les données des tables lors de l'exportation vers le service de stockage d'objets.
Utilisez le paramètre format et l'option encryption avec DBMS_CLOUD.EXPORT_DATA pour chiffrer les données lorsque vous exportez de la base de données du service d'intelligence artificielle autonome vers le stockage d'objets.
Notez les points suivants lorsque vous exportez des données chiffrées vers le service de stockage d'objets :
-
L'option
encryptionn'est prise en charge que lors de l'exportation de données d'une base de données d'intelligence artificielle autonome vers le stockage d'objets au format CSV, JSON ou XML. -
Lorsque l'exportation inclut à la fois le chiffrement et la compression, l'ordre des opérations est le suivant : d'abord les données sont compressées, ensuite les données sont chiffrées, puis elles sont chargées dans le stockage d'objets.
-
Il existe deux méthodes de chiffrement prises en charge :
-
Utilisation d'une fonction définie par l'utilisateur.
-
Utilisation d'un algorithme de chiffrement spécifié par
DBMS_CRYPTO.Voir DBMS_CRYPTO pour plus d'informations sur les fonctions et procédures cryptographiques pour le chiffrement et le déchiffrement.
-
Chiffrer les données à l'aide des algorithmes de chiffrement DBMS_CRYPTO
Affiche les étapes de chiffrement des données à l'aide d'algorithmes de chiffrement DBMS_CRYPTO lors de l'exportation vers le service de stockage d'objets en nuage.
Exécutez les étapes suivantes pour chiffrer les données lors de l'exportation vers le service de stockage d'objets en nuage (cet exemple exporte les données de table vers un fichier CSV) :
-
Connectez-vous à votre instance de base de données Autonomous AI Database.
-
Stockez vos données d'identification pour le service de stockage d'objets en nuage à l'aide de
DBMS_CLOUD.CREATE_CREDENTIAL.Par exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Les valeurs que vous indiquez pour
usernameetpassworddépendent du service de stockage d'objets en nuage que vous utilisez .Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.
-
Créez des données d'identification pour stocker la clé de chiffrement (la clé de chiffrement à utiliser pour chiffrer les données).
Lorsque vous chiffrez des données à l'aide d'algorithmes de chiffrement
DBMS_CRYPTO, vous stockez la clé de chiffrement dans des données d'identification. La clé est spécifiée dans le champpassworddans des données d'identification que vous créez avecDBMS_CLOUD.CREATE_CREDENTIAL.Par exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'ENC_CRED_NAME', username => 'Any_username', password => 'password' ); END; / -
Exécutez
DBMS_CLOUD.EXPORT_DATA.Utilisez le paramètre
formatavec l'optionencryption. Le typeencryptionspécifie l'algorithme de chiffrementDBMS_CRYPTOà utiliser pour chiffrer les données de la table et la valeurcredential_nameest des données d'identification qui spécifient la clé secrète (clé de chiffrement).Par 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; /Cela chiffre et exporte les données de la table
EMPLOYEESdans un fichier CSV.Pour plus d'informations sur les algorithmes de chiffrement, voir Algorithmes DBMS_CRYPTO.
Dans cet exemple,
namespace-stringest l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure etbucketnameest le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.Pour plus d'informations, voir Procédure EXPORT_DATA et Options de format d'ensemble DBMS_CLOUD pour EXPORT_DATA.
Après avoir chiffré les fichiers avec DBMS_CLOUD.EXPORT_DATA, lorsque vous utilisez des algorithmes de chiffrement DBMS_CRYPTO pour chiffrer les fichiers, vous disposez des options suivantes pour utiliser ou importer les fichiers que vous avez exportés :
-
Vous pouvez utiliser
DBMS_CLOUD.COPY_DATAouDBMS_CLOUD.COPY_COLLECTIONavec les mêmes options d'algorithme de chiffrement et la même clé pour déchiffrer les fichiers.Pour plus d'informations, voir Déchiffrer et charger des données à l'aide des algorithmes DBMS_CRYPTO.
-
Vous pouvez interroger les données d'une table externe en fournissant les mêmes options d'algorithme de chiffrement et la même clé pour déchiffrer les fichiers, avec l'une des procédures suivantes :
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEPour
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE, cette option s'applique uniquement aux fichiers de stockage d'objets.
Pour plus d'informations, voir Déchiffrer et charger des données à l'aide des algorithmes DBMS_CRYPTO.
-
-
Sur un système qui n'est pas une base de données d'IA autonome, vous pouvez utiliser l'ensemble
DBMS_CRYPTOavec les mêmes options d'algorithme et la clé pour déchiffrer les fichiers.Notez que la clé est stockée en tant que
VARCHAR2dans les données d'identification de la base de données d'intelligence artificielle autonome, mais queDBMS_CRYPTOutilise le typeRAWpour le paramètre de clé.Pour plus d'informations sur les algorithmes de chiffrement, voir Algorithmes DBMS_CRYPTO.
Chiffrer les données à l'aide d'une fonction de chiffrement définie par l'utilisateur
Affiche les étapes de chiffrement des données à l'aide d'une fonction de chiffrement définie par l'utilisateur lors de l'exportation vers le service de stockage d'objets en nuage.
Exécutez les étapes suivantes pour chiffrer les données lors de l'exportation vers le service de stockage d'objets en nuage (cet exemple exporte les données de table vers un fichier CSV) :
-
Connectez-vous à votre instance de base de données Autonomous AI Database.
-
Stockez vos données d'identification pour le service de stockage d'objets en nuage à l'aide de
DBMS_CLOUD.CREATE_CREDENTIAL.Par exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Les valeurs que vous indiquez pour
usernameetpassworddépendent du service de stockage d'objets en nuage que vous utilisez .Pour plus d'informations, voir Procédure CREATE_CREDENTIAL.
-
Créez une fonction de rappel définie par l'utilisateur pour chiffrer les données.
Par 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; /Cela crée la fonction de chiffrement
ENCRYPTION_FUNC. Cette fonction chiffre les données à l'aide d'un chiffrement de flux ou de bloc avec une clé fournie par l'utilisateur.Note : Vous devez créer une clé de chiffrement à utiliser comme valeur dans le paramètre
KEY. Voir Notes d'exploitation DBMS_CRYPTO pour plus d'informations sur la génération de la clé de chiffrement. -
Exécutez
DBMS_CLOUD.EXPORT_DATAavec le paramètreformat, incluez l'optionencryptionet spécifiez une valeuruser_defined_function.Par 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 chiffre les données de l'interrogation spécifiée sur la table
EMPet exporte les données sous forme de fichier CSV sur le stockage d'objets en nuage. Le paramètreformatavec la valeurencryptionspécifie la fonction de chiffrement définie par l'utilisateur à utiliser pour chiffrer les données.Note : Vous devez disposer du privilège
EXECUTEsur la fonction de chiffrement.Dans cet exemple,
namespace-stringest l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure etbucketnameest le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.Pour plus d'informations, voir Procédure EXPORT_DATA et Options de format d'ensemble DBMS_CLOUD pour EXPORT_DATA.
Contenu connexe
Déchiffrer les données lors de l'importation à partir du stockage d'objets