InterBase-Datenbankverschlüsselung
Nach oben zu Datenbankanwendungen entwickeln
Die InterBase-Verschlüsselung wird ab InterBase 2009 unterstützt. InterBase ermöglicht die Verschlüsselung von Informationen auf einer oder zwei der folgenden Ebenen:
- Verschlüsselung auf Datenbankebene (InterBase verschlüsselt alle Datenbankseiten, die Benutzerinformationen enthalten).
- Verschlüsselung auf Spaltenebene (die Verschlüsselung auf Spaltenebene ist flexibler und spezifischer).
Mit der InterBase-Datenbankverschlüsselung können Sie auch Datenbanksicherungsdateien verschlüsseln. Weitere Informationen zur Verschlüsselung von Daten mit InterBase finden Sie im Data Definition Guide (EN).
Inhaltsverzeichnis
Erstellen von Verschlüsselungen mit InterBase
Um bestimmte Verschlüsselungsaufgaben in InterBase zu erstellen, müssen Sie den Eigentümer der Systemdatensicherheit (SYSDSO, System Data Security Owner) anlegen. Beide Benutzer, der SYSDSO und der SYSDBA (Datenbankeigentümer), sind für die InterBase-Verschlüsselung verantwortlich. In der folgenden Tabelle sind die Unterschiede zwischen den Aufgaben der beiden Benutzer aufgeführt:
Berechtigungen | Datenbank- eigentümer |
SYSDSO |
---|---|---|
Erstellen von Verschlüsselungsschlüsseln |
NEIN | JA
|
Festlegen des SEP |
NEIN | JA
|
Erteilen von Verschlüsselungsberechtigungen |
NEIN | JA
|
Verschlüsseln der Datenbank |
JA
|
NEIN |
Verschlüsseln von Spalten |
JA
|
NEIN |
Erteilen von Entschlüsselungsberechtigungen |
JA
|
NEIN |
Darüber hinaus können Verschlüsselungsaufgaben von jedem einzelnen Tabellenbenutzer mit der Berechtigung zum Verschlüsseln von Spalten in einer Tabelle durchgeführt werden.
Verschlüsseln einer Datenbank mit IBConsole
InterBase bietet zwei Möglichkeiten zur Verschlüsselung von Datenbanken. Die Verschlüsselung kann mit isql aktiviert und implementiert werden, oder Sie können mit IBConsole eine Datenbank verschlüsseln. In diesem Thema wird die zweite Option – Verschlüsseln einer Datenbank mit IBConsole – verwendet.
Führen Sie die folgenden Schritte aus, um eine Verschlüsselung beim Erstellen einer neuen Datenbank durchzuführen:
- Öffnen Sie IBConsole.
- Wählen Sie aus dem Menü Server > Login.
- Melden Sie sich als SYSDBA oder als Datenbankeigentümer an.
- Wählen Sie aus dem Menü Database > Create Database.
- Wählen Sie im Feld Save In den Ordner aus, in dem die Datenbank gespeichert werden soll.
- Geben Sie einen Dateinamen an, und klicken Sie auf Save. Das Dialogfeld wird geschlossen.
- Ändern Sie den Wert im Feld Embedded User Authentication in Yes.
- Hinweis: Das Feld Use Encryption ist jetzt sichtbar.
- Ändern Sie den Wert im Feld Use Encryption in Yes.
- Klicken Sie auf die Schaltfläche OK, um eine Datenbank zu erstellen.
- Geben Sie Ihre Verbindungsinformationen ein, und klicken Sie auf die Schaltfläche Connect.
- Klicken Sie im "Encryption Wizard" auf die Schaltfläche Next.
- Geben Sie das SYSDSO-Passwort ein, und klicken Sie auf die Schaltfläche Next.
- Geben Sie das SEP-Passwort ein, und klicken Sie auf die Schaltfläche Next.
- Geben Sie den Namen für den Encryption Key ein.
- Wählen Sie für die Option "Cipher" DES aus.
- Klicken Sie auf OK.
- Geben Sie den Namen und das Passwort für "BackupKey" ein.
- Hinweis: Um die Sicherheit und Vertraulichkeit von verschlüsselten Datenbanken aufrechtzuerhalten, müssen Sie auch die Datenbanksicherungsdateien verschlüsseln.
- Klicken Sie auf OK.
- Klicken Sie im angezeigten Dialogfeld auf die Schaltfläche OK.
Parameter für das Systemverschlüsselungspasswort in InterBase
Bei einer verschlüsselten Datenbank in InterBase kann das SEP (System Encryption Password, Systemverschlüsselungspasswort) intern (Vorgabe, keine Verwendung eines Schlüsselwortes) oder extern (Verwendung eines Schlüsselwortes) festlegt werden.
- Das interne SEP ermöglicht, dass von Datenbankbenutzern auf die Datenbank zugegriffen werden kann, wenn die Datenbank bereits einmal mit dem SEP auf diesem Computer verwendet wurde. Bei folgenden Verbindungen oder einer Verbindung nach einem Neustart muss der SEP-Wert nicht angegeben werden. Wenn die RAD Studio-Anwendung auf einem Mac oder einem mobilen Gerät bereitgestellt wird, dann ist für die erste Verbindung der SEP-Parameterwert erforderlich.
- Bei Datenbanken, für die ein externes SEP festgelegt ist, muss bei der ersten Verbindung der SEP-Parameterwert angegeben werden. Nach einem Neustart des Computers muss die Anwendung bei der ersten Verbindung das SEP angeben. Das externe Systemverschlüsselungspasswort ist für mobile Geräte sicherer.
- Hinweis: Aktivieren Sie zum Festlegen des externen SEP im "Encryption Wizard" die Option External, oder verwenden Sie den Befehl
alter database set system encryption password <String mit 255 Zeichen> [external]
.
Systemverschlüsselungspasswort in dbExpress
Bei dbExpress können Sie den SEP-Wert in der TSQLConnection-Params-Sammlung festlegen oder den SEP-Wert programmseitig setzen.
procedure TForm10.BtnConnectClick(Sender: TObject);
begin
try
SQLConnection1.Params.Values['SEP']:='password';
SQLConnection1.Connected:=true;
except
on E:Exception do
ShowMessage(E.ClassName + ' ' + E.Message);
end;
end;
Systemverschlüsselungspasswort in FireDAC
Bei FireDAC können Sie den Parameter SEPassword in den TFDConnection-Verbindungsdefinitionsparametern festlegen.
procedure TForm10.BtnConnectClick(Sender: TObject);
begin
try
FDConnection1.Params.Values['SEPasword']:='password';
FDConnection1.Connected:=true;
except
on E:Exception do
ShowMessage(E.ClassName + ' ' + E.Message);
end;
end;
Systemverschlüsselungspasswort in InterBase Express
Bei InterBase Express (IBX) wird der Parameter SysEncryptPassword-TIBDatabase programmseitig festgelegt.
procedure TForm10.BtnConnectClick(Sender: TObject);
begin
try
IBDatabase1.SysEncryptPassword:='password';
IBDatabase1.Open;
except
on E:Exception do
ShowMessage(E.ClassName + ' ' + E.Message);
end;
end;
Siehe auch