Crypter les données lors de l'export vers Object Storage
Vous pouvez crypter les données de table lors de l'export vers Object Storage.
Utilisez le paramètre format et l'option encryption avec DBMS_CLOUD.EXPORT_DATA pour crypter les données lorsque vous exportez de la base de données Autonomous AI vers Object Storage.
Lorsque vous exportez des données cryptées vers Object Storage, tenez compte des points suivants :
-
L'option
encryptionest uniquement prise en charge lors de l'export de données d'Autonomous AI Database vers Object Storage au format CSV, JSON ou XML. -
Lorsque l'export inclut à la fois le cryptage et la compression, l'ordre des opérations est le suivant : d'abord les données sont compressées, puis les données sont cryptées, puis téléchargées vers Object Storage.
-
Il existe deux méthodes de cryptage prises en charge :
-
Utilisation d'une fonction définie par l'utilisateur.
-
Utilisation d'un algorithme de cryptage indiqué par
DBMS_CRYPTO.Reportez-vous à DBMS_CRYPTO pour plus d'informations sur les fonctions cryptographiques et les procédures de chiffrement et de déchiffrement.
-
Crypter les données à l'aide des algorithmes de cryptage DBMS_CRYPTO
Présente les étapes de cryptage des données à l'aide des algorithmes de cryptage DBMS_CRYPTO lors de l'export vers Cloud Object Storage.
Pour crypter les données lors de l'export vers Cloud Object Storage (cet exemple exporte les données de table dans un fichier CSV), procédez comme suit :
-
Connectez-vous à votre instance Autonomous AI Database.
-
Stockez vos informations d'identification de stockage d'objet cloud à l'aide de la procédure
DBMS_CLOUD.CREATE_CREDENTIAL,Exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Les valeurs fournies pour
usernameetpassworddépendent du service Cloud Object Storage que vous utilisez .Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.
-
Créez des informations d'identification pour stocker la clé de cryptage (la clé de cryptage à utiliser pour le cryptage des données).
Lorsque vous cryptez des données à l'aide d'algorithmes de cryptage
DBMS_CRYPTO, vous stockez la clé de cryptage dans des informations d'identification. La clé est indiquée dans le champpassworddans les informations d'identification que vous créez avecDBMS_CLOUD.CREATE_CREDENTIAL.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 typeencryptionindique l'algorithme de cryptageDBMS_CRYPTOà utiliser pour crypter les données de la table. La valeurcredential_namecorrespond aux informations d'identification qui indiquent la clé secrète (clé de cryptage).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; /Les données de la table
EMPLOYEESsont ainsi cryptées et exportées dans un fichier CSV.Pour plus d'informations sur les algorithmes de cryptage, reportez-vous à Algorithmes DBMS_CRYPTO.
Dans cet exemple,
namespace-stringest l'espace de noms Oracle Cloud Infrastructure Object Storage etbucketnameest le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.Pour plus d'informations, reportez-vous aux sections Procédure EXPORT_DATA et Options de format de package DBMS_CLOUD pour EXPORT_DATA.
Après avoir crypté les fichiers avec DBMS_CLOUD.EXPORT_DATA, lorsque vous utilisez des algorithmes de cryptage DBMS_CRYPTO pour crypter 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 cryptage et la même clé pour décrypter les fichiers.Pour plus d'informations, reportez-vous à Décryptage et chargement de 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 cryptage et la clé de décryptage des 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 n'est applicable qu'aux fichiers Object Storage.
Pour plus d'informations, reportez-vous à Décryptage et chargement de données à l'aide des algorithmes DBMS_CRYPTO.
-
-
Sur un système qui n'est pas une base de données Autonomous AI, vous pouvez utiliser le package
DBMS_CRYPTOavec les mêmes options d'algorithme et la clé pour décrypter les fichiers.La clé est stockée en tant que
VARCHAR2dans les informations d'identification dans la base de données Autonomous AI, maisDBMS_CRYPTOutilise le typeRAWpour le paramètre de clé.Pour plus d'informations sur les algorithmes de cryptage, reportez-vous à Algorithmes DBMS_CRYPTO.
Crypter les données avec une fonction de cryptage définie par l'utilisateur
Présente les étapes de cryptage des données à l'aide d'une fonction de cryptage définie par l'utilisateur lors de l'export vers Cloud Object Storage.
Pour crypter les données lors de l'export vers Cloud Object Storage (cet exemple exporte les données de table dans un fichier CSV), procédez comme suit :
-
Connectez-vous à votre instance Autonomous AI Database.
-
Stockez vos informations d'identification de stockage d'objet cloud à l'aide de la procédure
DBMS_CLOUD.CREATE_CREDENTIAL,Exemple :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Les valeurs fournies pour
usernameetpassworddépendent du service Cloud Object Storage que vous utilisez .Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.
-
Créez une fonction de rappel définie par l'utilisateur pour crypter les données.
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; /La fonction de cryptage
ENCRYPTION_FUNCest ainsi créée. Cette fonction crypte les données à l'aide d'un cryptage de flux ou de bloc avec une clé fournie par l'utilisateur.Remarque : vous devez créer une clé de cryptage à utiliser comme valeur dans le paramètre
KEY. Pour plus d'informations sur la génération de la clé de cryptage, reportez-vous à Notes opérationnelles DBMS_CRYPTO. -
Exécutez
DBMS_CLOUD.EXPORT_DATAavec le paramètreformat, incluez l'optionencryptionet indiquez une valeuruser_defined_function.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 crypte les données de la requête spécifiée dans la table
EMPet les exporte en tant que fichier CSV sur Cloud Object Storage. Le paramètreformatavec la valeurencryptionindique la fonction de cryptage définie par l'utilisateur à utiliser pour crypter les données.Remarque : vous devez disposer du privilège
EXECUTEsur la fonction de cryptage.Dans cet exemple,
namespace-stringest l'espace de noms Oracle Cloud Infrastructure Object Storage etbucketnameest le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.Pour plus d'informations, reportez-vous aux sections Procédure EXPORT_DATA et Options de format de package DBMS_CLOUD pour EXPORT_DATA.
Contenu connexe
Décryptage des données lors de l'import à partir d'Object Storage