Mit der Tabellenverschlüsselung können Sie Tabellen oder materialisierte Ansichten mit heiklen Daten ohne jene Performanceauswirkungen verschlüsseln, die bei einer Verschlüsselung der gesamten Datenbank möglicherweise auftreten. Wenn die Tabellenverschlüsselung aktiviert ist, werden Tabellenseiten für die verschlüsselte Tabelle, die damit verbundenen Indexseiten und Seiten in temporären Dateien verschlüsselt. Die Transaktionslogseiten, die Transaktionen für verschlüsselte Tabellen enthalten, werden ebenfalls verschlüsselt.
Hinweise zur Verschlüsselung von materialisierten Ansichten finden Sie unter Materialisierte Ansichten ver- und entschlüsseln
Um Tabellen in Ihrer Datenbank zu verschlüsseln, muss die Tabellenverschlüsselung aktiviert sein. Die Aktivierung der Tabellenverschlüsselung wird während der Datenbankinitialisierung durchgeführt. Um zu bestimmen, ob die Tabellenverschlüsselung aktiviert ist, fragen Sie die Datenbankeigenschaft EncryptionScope unter Verwendung der DB_PROPERTY-Funktion folgendermaßen ab:
SELECT DB_PROPERTY( 'EncryptionScope' ); |
Wenn der Rückgabewert TABLE ist, ist die Tabellenverschlüsselung aktiviert.
Um den für die Tabellenverschlüsselung verwendeten Verschlüsselungsalgorithmus anzuzeigen, fragen Sie die Datenbankeigenschaft Encryption unter Verwendung der DB_PROPERTY-Funktion folgendermaßen ab:
SELECT DB_PROPERTY( 'Encryption' ); |
Eine Liste der unterstützten Verschlüsselungsalgorithmen finden Sie unter Datenbank verschlüsseln und entschlüsseln.
Bei verschlüsselten Tabellen werden die Tabellenseiten verschlüsselt, wenn sie auf die Festplatte geschrieben werden, und entschlüsselt, wenn sie von der Festplatte gelesen werden. Dieser Prozess ist für Anwendungen unsichtbar. Es können allerdings leichte Performance-Einbußen auftreten, wenn von verschlüsselten Tabellen gelesen bzw. in sie geschrieben wird. Das Verschlüsseln oder Entschlüsseln bestehender Tabellen kann, abhängig von der Größe der Tabelle, lange dauern.
Indexseiten für Indizes auf Spalten in einer verschlüsselten Tabelle werden ebenfalls verschlüsselt, wie auch Transaktionslogseiten, die Transaktionen der verschlüsselten Tabelle enthalten, und alle Seiten in der temporären Datei für die Datenbank. Alle anderen Datenbank- und Transaktionslogseiten sind unverschlüsselt.
Verschlüsselte Tabellen können komprimierte Spalten enthalten. In diesem Fall werden Daten komprimiert, bevor sie verschlüsselt werden.
Verschlüsselte Tabellen wirken sich nicht auf die Speicheranforderungen aus.
Das Starten einer Datenbank, bei der Tabellenverschlüsselung aktiviert ist, entspricht dem Starten einer verschlüsselten Datenbank. Wenn die Datenbank z.B. mit der Option -ek gestartet wird, muss ein Schlüssel angegeben werden. Wenn die Datenbank mit der Option -ep gestartet wird, werden Sie zur Eingabe des Schlüssels aufgefordert. Weitere Hinweise finden Sie unter Dienstprogramm Initialisierung (dbinit).
Die Tabellenverschlüsselung wird zum Zeitpunkt der Tabellenerstellung aktiviert und konfiguriert. Sie müssen die Datenbank mit aktivierter Tabellenverschlüsselung neu erstellen, wenn bei Ihrer Datenbank Tabellenverschlüsselung nicht aktiviert ist oder wenn eine Datenbankverschlüsselung vorhanden ist.
Erstellen Sie eine Datenbank mit der CREATE DATABASE-Anweisung und geben Sie einen Schlüssel und einen Verschlüsselungsalgorithmus an.
Der folgende Befehl erstellt die Datenbank new.db, bei der starke Verschlüsselung für Tabellen aktiviert ist, wobei der Schlüssel "abc" und der AES256_FIPS-Verschlüsselungsalgorithmus verwendet werden:
CREATE DATABASE 'new.db' ENCRYPTED TABLE KEY 'abc' ALGORITHM 'AES256_FIPS'; |
Wenn Sie später eine Tabelle in dieser Datenbank verschlüsseln, werden der AES256_FIPS-Algorithmus und der Schlüssel "abc" verwendet.
Erstellen Sie eine Datenbank mit den dbinit-Optionen -et und -ek und geben Sie einen Schlüssel und einen Verschlüsselungsalgorithmus an.
Der folgende Befehl erstellt die Datenbank new.db, bei der die starke Verschlüsselung für Tabellen aktiviert ist, wobei der Schlüssel "abc" und der AES256_FIPS-Verschlüsselungsalgorithmus verwendet werden:
dbinit new.db -et -ek abc -ea AES256_FIPS |
Wenn Sie später eine Tabelle in dieser Datenbank verschlüsseln, werden der AES256_FIPS-Algorithmus und der Schlüssel "abc" verwendet.
Erstellen Sie eine verschlüsselte Kopie der Datenbank mit der Anweisung CREATE ENCRYPTED TABLE DATABASE und geben Sie einen Schlüssel an.
Im folgenden Beispiel wird eine Datenbank namens contacts2 aus der bestehenden Datenbank contacts1 erstellt. Die neue Datenbank unterstützt verschlüsselte Tabellen.
CREATE ENCRYPTED TABLE DATABASE 'contacts2.db' FROM 'contacts1.db' KEY 'Sd8f6654' OLD KEY 'Sc8e5543'; |
Wenn Sie später eine Tabelle in dieser Datenbank verschlüsseln, werden der AES-Algorithmus und der Schlüssel "Sd8f6654" verwendet.
Um Tabellen in Ihrer Datenbank zu verschlüsseln, muss Verschlüsselung in der Datenbank bereits aktiviert sein. Weitere Hinweise finden Sie unter Tabellenverschlüsselung in der Datenbank aktivieren.
Wenn Sie eine Tabelle verschlüsseln, werden der Verschlüsselungsalgorithmus und der Chiffrierschlüssel verwendet, die bei der Erstellung der Datenbank angegeben wurden.
Erstellen Sie eine Tabelle unter Verwendung der ENCRYPTED-Klausel der CREATE TABLE-Anweisung.
Der folgende Befehl erstellt eine verschlüsselte Tabelle namens MyEmployees:
CREATE TABLE MyEmployees ( MemberID CHAR(40), CardNumber INTEGER ) ENCRYPTED; |
Verschlüsseln Sie eine Tabelle mit der ENCRYPTED-Klausel der ALTER TABLE-Anweisung.
Die folgenden Anweisungen erstellen eine Tabelle namens MyEmployees2 und verschlüsseln sie.
CREATE TABLE MyEmployees2 ( MemberID CHAR(40), CardNumber INTEGER ); ALTER TABLE MyEmployees2 ENCRYPTED; |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |