Cifrado de datos al exportar a Object Storage
Puede cifrar los datos de la tabla al exportarlos a Object Storage.
Utilice el parámetro format y la opción encryption con DBMS_CLOUD.EXPORT_DATA para cifrar los datos al exportar de la base de datos de IA autónoma a Object Storage.
Tenga en cuenta lo siguiente al exportar datos cifrados a Object Storage:
-
La opción
encryptionsolo está soportada al exportar datos de Autonomous AI Database a Object Storage como CSV, JSON o XML. -
Cuando la exportación incluye cifrado y compresión, el orden de las operaciones es: primero se comprimen los datos, después se cifran los datos y, a continuación, se cargan en Object Storage.
-
Hay dos métodos de cifrado soportados:
-
Uso de una función definida por usuario.
-
Mediante un algoritmo de cifrado especificado
DBMS_CRYPTO.Consulte DBMS_CRYPTO para obtener información sobre las funciones criptográficas y los procedimientos de cifrado y descifrado.
-
Cifrado de datos mediante algoritmos de cifrado DBMS_CRYPTO
Muestra los pasos para cifrar datos mediante algoritmos de cifrado DBMS_CRYPTO al exportar a Cloud Object Storage.
Realice los siguientes pasos para cifrar los datos al exportar a Cloud Object Storage (en este ejemplo se exportan los datos de la tabla a un archivo CSV):
-
Conéctese a su instancia de base de datos de IA autónoma.
-
Almacene su credencial de Cloud Object Storage mediante
DBMS_CLOUD.CREATE_CREDENTIAL.Por ejemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Los valores que proporcione para
usernameypassworddependen del servicio de Cloud Object Storage que utilice.Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.
-
Cree una credencial para almacenar la clave de cifrado (la clave de cifrado que se utilizará para cifrar los datos).
Al cifrar datos mediante algoritmos de cifrado
DBMS_CRYPTO, se almacena la clave de cifrado en una credencial. La clave se especifica en el campopasswordde una credencial que cree conDBMS_CLOUD.CREATE_CREDENTIAL.Por ejemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'ENC_CRED_NAME', username => 'Any_username', password => 'password' ); END; / -
Ejecute
DBMS_CLOUD.EXPORT_DATA.Utilice el parámetro
formatcon la opciónencryption. El tipoencryptionespecifica el algoritmo de cifradoDBMS_CRYPTOque se va a utilizar para cifrar los datos de la tabla y el valorcredential_namees la credencial que especifica el secreto (clave de cifrado).Por ejemplo:
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; /Esto cifra y exporta los datos de la tabla
EMPLOYEESa un archivo CSV.Consulte Algoritmos DBMS_CRYPTO para obtener más información sobre los algoritmos de cifrado.
In this example,
namespace-stringis the Oracle Cloud Infrastructure object storage namespace andbucketnameis the bucket name. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.Consulte Procedimiento EXPORT_DATA y Opciones de formato de paquete DBMS_CLOUD para EXPORT_DATA para obtener más información.
Después de cifrar archivos con DBMS_CLOUD.EXPORT_DATA, cuando utiliza algoritmos de cifrado DBMS_CRYPTO para cifrar los archivos, tiene estas opciones para utilizar o importar los archivos que ha exportado:
-
Puede utilizar
DBMS_CLOUD.COPY_DATAoDBMS_CLOUD.COPY_COLLECTIONcon las mismas opciones de algoritmo de cifrado y la clave para descifrar los archivos.Consulte Descifrado y carga de datos mediante algoritmos DBMS_CRYPTO para obtener más información.
-
Puede consultar los datos de una tabla externa proporcionando las mismas opciones de algoritmo de cifrado y la clave para descifrar los archivos, con cualquiera de los siguientes procedimientos:
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEPara
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE, esta opción solo se aplica a los archivos de Object Storage.
Consulte Descifrado y carga de datos mediante algoritmos DBMS_CRYPTO para obtener más información.
-
-
En un sistema que no es una base de datos de IA autónoma, puede utilizar el paquete
DBMS_CRYPTOcon las mismas opciones de algoritmo y la clave para descifrar los archivos.Tenga en cuenta que la clave se almacena como
VARCHAR2en la credencial de la base de datos de IA autónoma, peroDBMS_CRYPTOutiliza el tipoRAWpara el parámetro de clave.Consulte Algoritmos DBMS_CRYPTO para obtener más información sobre los algoritmos de cifrado.
Cifrado de datos con una función de cifrado definida por el usuario
Muestra los pasos para cifrar datos mediante una función de cifrado definida por el usuario al exportar a Cloud Object Storage.
Realice los siguientes pasos para cifrar los datos al exportar a Cloud Object Storage (en este ejemplo se exportan los datos de la tabla a un archivo CSV):
-
Conéctese a su instancia de base de datos de IA autónoma.
-
Almacene su credencial de Cloud Object Storage mediante
DBMS_CLOUD.CREATE_CREDENTIAL.Por ejemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Los valores que proporcione para
usernameypassworddependen del servicio de Cloud Object Storage que utilice.Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.
-
Cree una función de devolución de llamada definida por el usuario para cifrar los datos.
Por ejemplo:
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; /Esto crea la función de cifrado
ENCRYPTION_FUNC. Esta función cifra los datos mediante un cifrado de flujo o bloque con una clave proporcionada por el usuario.Nota: Debe crear una clave de cifrado para que se utilice como valor en el parámetro
KEY. Consulte las Notas operativas de DBMS_CRYPTO para obtener más información sobre la generación de la clave de cifrado. -
Ejecute
DBMS_CLOUD.EXPORT_DATAcon el parámetroformat, incluya la opciónencryptiony especifique unuser_defined_function.Por ejemplo:
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; /Esto cifra los datos de la consulta especificada en la tabla
EMPy exporta los datos como un archivo CSV en Cloud Object Storage. El parámetroformatcon el valorencryptionespecifica la función de cifrado definida por el usuario que se utilizará para cifrar los datos.Nota: Debe tener el privilegio
EXECUTEen la función de cifrado.In this example,
namespace-stringis the Oracle Cloud Infrastructure object storage namespace andbucketnameis the bucket name. Consulte Descripción de los espacios de nombres de Object Storage para obtener más información.Consulte Procedimiento EXPORT_DATA y Opciones de formato de paquete DBMS_CLOUD para EXPORT_DATA para obtener más información.