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.
Consulte Estabelecer Conexão com o Autonomous AI Database para obter mais informações.
-
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.
Não será necessário criar uma credencial para acessar o Oracle Cloud Infrastructure Object Store se você ativar as credenciais do controlador de recursos. Consulte Usar o Controlador de Recursos para Acessar Recursos da Oracle Cloud Infrastructure 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; /Como alternativa, você pode criar uma credencial para armazenar a chave em um vault. Por exemplo:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'ENC_CRED_NAME', params => JSON_OBJECT ('username' value 'Any_username', 'region' value 'Region', 'secret_id' value 'Secret_id_value')); END; /Observação
Observação: O parâmetrousernameespecificado na credencial que armazena a chave pode ser qualquer string.Isso cria a credencial
ENC_CRED_NAME, que é uma credencial secreta do vault, na qual o segredo (chave de decriptografia/criptografia) é armazenado como segredo no Oracle Cloud Infrastructure Vault.Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.
-
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/namespace-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.
Consulte Estabelecer Conexão com o Autonomous AI Database para obter mais informações.
-
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.
Não será necessário criar uma credencial para acessar o Oracle Cloud Infrastructure Object Store se você ativar as credenciais do controlador de recursos. Consulte Usar o Controlador de Recursos para Acessar Recursos da Oracle Cloud Infrastructure 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
Observação: Crie uma chave de criptografia para ser usada como um valor no parâmetroKEY. 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/namespace-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
Observação: Você deve ter o privilégioEXECUTEna 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.