Derby unterstützt, die Daten in der Datenbank, verschlüsselt abzulegen. Dazu muss die Datenbank entsprechend erstellt werden.
Mit folgendem Befehl wird eine neue Datenbank verschlüsselt abgelegt:
java -Dij.protocol=jdbc:derby: org.apache.derby.tools.ij
Standardmässig wird DES mit einer Schlüssellänge von 56 Bits verwendet.
ij>connect
'jdbc:derby:encryptedDB3;create=true;dataEncryption=true;
bootPassword=sicherIstSicher';
Der Algorithmus kann mit Attribute encryptionAlgorithm angegeben werden. Nachfolgendes Beispiel verwendet
den Algorithmus "Trippel-DES" mit der Feedback-Methode "CBC" und dem Padding-Typ "NoPadding".
encryptionAlgorithm=DESede/CBC/NoPadding
Derby unterstützt Benutzerautorisierung. Benutzerautorisierung bedeutet, dass Derby Benutzer anhand eines
Benutzernamens und eines Passwortes authentifiziert, bevor es Zugriffe auf Daten zulässt. Standardmässig ist
diese Funktion ausgeschaltet, da man bei einem integrierte Datenbank in der Regel keine Autorisierung braucht.
Wenn man die Autorisierung einsetzen will, muss man sie zuerst aktivieren. Die Aktivierung erfolgt mit dem setzen
der Eigenschaft (Property) "derby.connection.requireAuthentication" auf den Wert true. Diese Eigenschaft kann
systemweit oder datenbankweit gesetzt werden. Das setzten kann mittels einer Property-Datei oder programmatisch
erfolgen. Die Benutzer können dabei intern mit einer eingebauten Funktion, extern mittels LDAP oder mit einer
benutzerdefinierten Klasse authentifiziert werden.
Die folgende Java-Funktion aktiviert die Benutzerautorisierung und erstellt zwei Benutzerkonten mit unterschiedlichen Rechten:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: |
public static void benutzerAutorisierungEinschalten(Connection conn) throws SQLException { System.out.println("Aktiviere Benutzerautorisierung."); Statement s = conn.createStatement(); // Aktiviere Benutzerautorisierung s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.connection.requireAuthentication, true)"); // Verwende interne Autorisierung s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.authentication.provider, BUILTIN)"); // Kreiere zwei Benutzer s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.user.admin, derby2005)"); s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.user.gast, gast2005)"); // Setzte Standardzugriffmodus auf Keinen Zugriff s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.database.defaultConnectionMode, noAccess)"); // Setzze Zugriffberechtigungen s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.database.fullAccessUsers, admin)"); // Defining read-only users s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.database.readOnlyAccessUsers, gast)"); // Priorisiere Datenbankeigenschaften. D. h. datenbankweite // Eigenschaften haben Priorität gegenüber systemweite Eigenschaften s.executeUpdate("CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(" + "derby.database.propertiesOnly, false)"); s.close(); } |
![]() |
Scherer Informatik GmbH | Tel 032 396 39 05 | ||
| Juchen 24A | Fax 032 396 39 06 | |||
| CH-2577 Siselen | info(at)scherer-informatik.ch |