Daten beim Exportieren in Object Storage verschlüsseln
Sie können Tabellendaten beim Export in Object Storage verschlüsseln.
Verwenden Sie den Parameter format und die Option encryption mit DBMS_CLOUD.EXPORT_DATA, um Daten zu verschlüsseln, wenn Sie aus einer autonomen KI-Datenbank in Object Storage exportieren.
Beachten Sie Folgendes, wenn Sie verschlüsselte Daten in Object Storage exportieren:
-
Die Option
encryptionwird nur unterstützt, wenn Daten aus der autonomen KI-Datenbank als CSV, JSON oder XML in Object Storage exportiert werden. -
Wenn der Export sowohl Verschlüsselung als auch Komprimierung umfasst, lautet die Reihenfolge der Vorgänge: Zuerst werden die Daten komprimiert, danach werden die Daten verschlüsselt und dann in Object Storage hochgeladen.
-
Es gibt zwei unterstützte Verschlüsselungsmethoden:
-
Verwenden einer benutzerdefinierten Funktion.
-
Verwendung eines von
DBMS_CRYPTOangegebenen Verschlüsselungsalgorithmus.Informationen zu den kryptografischen Funktionen und Prozeduren für die Verschlüsselung und Entschlüsselung finden Sie unter DBMS_CRYPTO.
-
Daten mit DBMS_CRYPTO-Verschlüsselungsalgorithmen verschlüsseln
Zeigt die Schritte zum Verschlüsseln von Daten mit Verschlüsselungsalgorithmen DBMS_CRYPTO beim Export in Cloud Object Storage an.
Führen Sie die folgenden Schritte aus, um Daten beim Export in Cloud Object Storage zu verschlüsseln (in diesem Beispiel werden Tabellendaten in eine CSV-Datei exportiert):
-
Stellen Sie eine Verbindung zur autonomen KI-Datenbankinstanz her.
-
Speichern Sie Ihre Zugangsdaten für Cloud-Objektspeicher mit
DBMS_CLOUD.CREATE_CREDENTIAL.Beispiel:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Die Werte, die Sie für
usernameundpasswordangeben, hängen vom verwendeten Cloud-Objektspeicherservice ab.Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
-
Erstellen Sie Zugangsdaten zum Speichern des Verschlüsselungsschlüssels (den Verschlüsselungsschlüssel, der zum Verschlüsseln von Daten verwendet werden soll).
Wenn Sie Daten mit
DBMS_CRYPTO-Verschlüsselungsalgorithmen verschlüsseln, speichern Sie den Verschlüsselungsschlüssel in Zugangsdaten. Der Schlüssel wird im Feldpasswordin den Zugangsdaten angegeben, die Sie mitDBMS_CLOUD.CREATE_CREDENTIALerstellen.Beispiel:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'ENC_CRED_NAME', username => 'Any_username', password => 'password' ); END; / -
Führen Sie
DBMS_CLOUD.EXPORT_DATAaus.Verwenden Sie den Parameter
formatmit der Optionencryption. Der Typencryptiongibt den VerschlüsselungsalgorithmusDBMS_CRYPTOan, der zum Verschlüsseln der Tabellendaten verwendet werden soll, und der Wertcredential_namesind Zugangsdaten, die das Secret angeben (Verschlüsselungsschlüssel).Beispiel:
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; /Dadurch werden die Daten aus der Tabelle
EMPLOYEESverschlüsselt und in eine CSV-Datei exportiert.Weitere Informationen zu Verschlüsselungsalgorithmen finden Sie unter DBMS_CRYPTO Algorithmen.
In diesem Beispiel ist
namespace-stringder Oracle Cloud Infrastructure-Objektspeicher-Namespace undbucketnameder Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.Weitere Informationen finden Sie unter Prozedur EXPORT_DATA und Optionen für das DBMS_CLOUD Packageformat für EXPORT_DATA.
Nachdem Sie Dateien mit DBMS_CLOUD.EXPORT_DATA verschlüsselt haben und die Dateien mit DBMS_CRYPTO-Verschlüsselungsalgorithmen verschlüsseln, haben Sie die folgenden Optionen zum Verwenden oder Importieren der exportierten Dateien:
-
Sie können
DBMS_CLOUD.COPY_DATAoderDBMS_CLOUD.COPY_COLLECTIONmit denselben Verschlüsselungsalgorithmusoptionen und dem Schlüssel zum Entschlüsseln der Dateien verwenden.Weitere Informationen finden Sie unter Daten mit DBMS_CRYPTO-Algorithmen entschlüsseln und laden.
-
Sie können die Daten in einer externen Tabelle abfragen, indem Sie dieselben Verschlüsselungsalgorithmusoptionen und den Schlüssel zum Entschlüsseln der Dateien mit einer der folgenden Prozeduren angeben:
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEFür
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEgilt diese Option nur für die Object Storage-Dateien.
Weitere Informationen finden Sie unter Daten mit DBMS_CRYPTO-Algorithmen entschlüsseln und laden.
-
-
Bei einem System, das keine autonome KI-Datenbank ist, können Sie das Package
DBMS_CRYPTOmit denselben Algorithmusoptionen und dem Schlüssel zum Entschlüsseln der Dateien verwenden.Beachten Sie, dass der Schlüssel als
VARCHAR2in den Zugangsdaten in der autonomen KI-Datenbank gespeichert ist,DBMS_CRYPTOjedoch den TypRAWfür den Schlüsselparameter verwendet.Weitere Informationen zu Verschlüsselungsalgorithmen finden Sie unter DBMS_CRYPTO Algorithmen.
Daten mit einer benutzerdefinierten Verschlüsselungsfunktion verschlüsseln
Zeigt die Schritte zum Verschlüsseln von Daten mit einer benutzerdefinierten Verschlüsselungsfunktion beim Export in Cloud Object Storage an.
Führen Sie die folgenden Schritte aus, um Daten beim Export in Cloud Object Storage zu verschlüsseln (in diesem Beispiel werden Tabellendaten in eine CSV-Datei exportiert):
-
Stellen Sie eine Verbindung zur autonomen KI-Datenbankinstanz her.
-
Speichern Sie Ihre Zugangsdaten für Cloud-Objektspeicher mit
DBMS_CLOUD.CREATE_CREDENTIAL.Beispiel:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'OBJ_STORE_CRED', username => 'user1@example.com', password => 'password' ); END; /Die Werte, die Sie für
usernameundpasswordangeben, hängen vom verwendeten Cloud-Objektspeicherservice ab.Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.
-
Erstellen Sie eine benutzerdefinierte Callback-Funktion zum Verschlüsseln von Daten.
Beispiel:
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; /Dadurch wird die Verschlüsselungsfunktion
ENCRYPTION_FUNCerstellt. Diese Funktion verschlüsselt Daten mit einem Stream- oder Block-Cipher mit einem vom Benutzer bereitgestellten Schlüssel.Hinweis: Sie müssen einen Verschlüsselungsschlüssel erstellen, der als Wert im Parameter
KEYverwendet werden soll. Weitere Informationen zum Generieren des Verschlüsselungsschlüssels finden Sie unter DBMS_CRYPTO Operational Notes. -
Führen Sie
DBMS_CLOUD.EXPORT_DATAmit dem Parameterformataus, nehmen Sie die Optionencryptionauf, und geben Sie eineuser_defined_functionan.Beispiel:
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; /Dadurch werden die Daten aus der angegebenen Abfrage der Tabelle "on"
EMPverschlüsselt, und die Daten werden als CSV-Datei in Cloud Object Storage exportiert. Der Parameterformatmit dem Wertencryptiongibt die benutzerdefinierte Verschlüsselungsfunktion an, die zur Verschlüsselung der Daten verwendet werden soll.Hinweis: Sie benötigen die Berechtigung
EXECUTEfür die Verschlüsselungsfunktion.In diesem Beispiel ist
namespace-stringder Oracle Cloud Infrastructure-Objektspeicher-Namespace undbucketnameder Bucket-Name. Weitere Informationen finden Sie unter Object Storage-Namespaces.Weitere Informationen finden Sie unter Prozedur EXPORT_DATA und Optionen für das DBMS_CLOUD Packageformat für EXPORT_DATA.