Criptografar Dados Durante a Exportação para o Object Storage
Você pode criptografar dados da tabela durante a exportação para o Object Storage.
Use o parâmetro format e a opção encryption com DBMS_CLOUD.EXPORT_DATA para criptografar dados quando você exportar do Autonomous AI Database para o Object Storage.
Observe o seguinte quando você exporta dados criptografados para o serviço Object Storage:
-
A opção
encryptionsó é suportada ao exportar dados do Autonomous AI Database para o Object Storage como CSV, JSON ou XML. -
Quando a exportação inclui criptografia e compactação, a ordem das operações é: primeiro os dados são compactados, depois os dados são criptografados e, em seguida, é feito upload para o Object Storage.
-
Há dois métodos de criptografia suportados:
-
Usando uma função definida pelo usuário.
-
Usando um algoritmo de criptografia especificado
DBMS_CRYPTO.Consulte DBMS_CRYPTO para obter informações sobre as funções e procedimentos criptográficos para criptografia e decriptografia.
-
Criptografar Dados Usando Algoritmos de Criptografia DBMS_CRYPTO
Mostra as etapas para criptografar dados usando algoritmos de criptografia DBMS_CRYPTO durante a exportação para o Cloud Object Storage.
Execute as seguintes etapas para criptografar dados durante a exportação para o Cloud Object Storage (este exemplo exporta dados da tabela para um arquivo CSV):
-
Conecte-se à sua instância do Autonomous AI Database.
-
Armazene a sua credencial do Cloud Object Storage usando
DBMS_CLOUD.CREATE_CREDENTIAL.Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Os valores fornecidos para
usernameepassworddependem do serviço de Cloud Object Storage que você está usando.Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.
-
Crie uma credencial para armazenar a chave de criptografia (a chave de criptografia a ser usada para criptografar dados).
Ao criptografar dados usando algoritmos de criptografia
DBMS_CRYPTO, você armazena a chave de criptografia em uma credencial. A chave é especificada no campopasswordem uma credencial criada comDBMS_CLOUD.CREATE_CREDENTIAL.Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'ENC_CRED_NAME', username => 'Any_username', password => 'password' ); END; / -
Execute
DBMS_CLOUD.EXPORT_DATA.Use o parâmetro
formatcom a opçãoencryption. O tipoencryptionespecifica o algoritmo de criptografiaDBMS_CRYPTOa ser usado para criptografar os dados da tabela, e o valorcredential_nameé uma credencial que especifica o segredo (chave de criptografia).Por exemplo:
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; /Isso criptografa e exporta os dados da tabela
EMPLOYEESpara um arquivo CSV.Consulte Algoritmos DBMS_CRYPTO para obter mais informações sobre algoritmos de criptografia.
Neste exemplo,
namespace-stringé o namespace do Oracle Cloud Infrastructure Object Storage ebucketnameé o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.Consulte Procedimento EXPORT_DATA e Opções de Formato de Pacote DBMS_CLOUD para EXPORT_DATA para obter mais informações.
Depois de criptografar arquivos com o DBMS_CLOUD.EXPORT_DATA, ao usar algoritmos de criptografia DBMS_CRYPTO para criptografar os arquivos, você tem estas opções para usar ou importar os arquivos exportados:
-
Você pode usar
DBMS_CLOUD.COPY_DATAouDBMS_CLOUD.COPY_COLLECTIONcom as mesmas opções de algoritmo de criptografia e a chave para decriptografar os arquivos.Consulte Descriptografar e Carregar Dados Usando Algoritmos DBMS_CRYPTO para obter mais informações.
-
Você pode consultar os dados em uma tabela externa fornecendo as mesmas opções de algoritmo de criptografia e a chave para decriptografar os arquivos, com qualquer um dos seguintes procedimentos:
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEPara
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE, essa opção só se aplica aos arquivos do serviço Object Storage.
Consulte Descriptografar e Carregar Dados Usando Algoritmos DBMS_CRYPTO para obter mais informações.
-
-
Em um sistema que não é um Autonomous AI Database, você pode usar o pacote
DBMS_CRYPTOcom as mesmas opções de algoritmo e a chave para decriptografar os arquivos.Observe que a chave é armazenada como um
VARCHAR2na credencial no Autonomous AI Database, mas oDBMS_CRYPTOusa o tipoRAWpara o parâmetro de chave.Consulte Algoritmos DBMS_CRYPTO para obter mais informações sobre algoritmos de criptografia.
Criptografar Dados com uma Função de Criptografia Definida pelo Usuário
Mostra as etapas para criptografar dados usando uma função de criptografia definida pelo usuário durante a exportação para o Cloud Object Storage.
Execute as seguintes etapas para criptografar dados durante a exportação para o Cloud Object Storage (este exemplo exporta dados da tabela para um arquivo CSV):
-
Conecte-se à sua instância do Autonomous AI Database.
-
Armazene a sua credencial do Cloud Object Storage usando
DBMS_CLOUD.CREATE_CREDENTIAL.Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Os valores fornecidos para
usernameepassworddependem do serviço de Cloud Object Storage que você está usando.Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.
-
Crie uma função de callback definida pelo usuário para criptografar dados.
Por exemplo:
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; /Isso cria a função de criptografia
ENCRYPTION_FUNC. Essa função criptografa dados usando uma cifra de fluxo ou bloco com uma chave fornecida pelo usuário.Observação: crie uma chave de criptografia para ser usada como um valor no parâmetro
KEY. Consulte Observações Operacionais DBMS_CRYPTO para obter mais informações sobre como gerar a chave de criptografia. -
Execute
DBMS_CLOUD.EXPORT_DATAcom o parâmetroformat, inclua a opçãoencryptione especifique umauser_defined_function.Por exemplo:
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; /Isso criptografa os dados da consulta especificada na tabela
EMPe os exporta como um arquivo CSV no Cloud Object Storage. O parâmetroformatcom o valorencryptionespecifica a função de criptografia definida pelo usuário a ser usada para criptografar os dados.Observação: Você deve ter o privilégio
EXECUTEna função de criptografia.Neste exemplo,
namespace-stringé o namespace do Oracle Cloud Infrastructure Object Storage ebucketnameé o nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.Consulte Procedimento EXPORT_DATA e Opções de Formato de Pacote DBMS_CLOUD para EXPORT_DATA para obter mais informações.
Conteúdo Relacionado
Descriptografar Dados Durante a Importação do Serviço Object Storage