DB2 for LUW: Viper geht in die zweite Runde

27.11.2007
Von Heinz Axel Pürner

Sicherheitserweiterungen

Wie in Version 9 von DB2 for z/OS bereits geschehen, sind nun auch in Version 9.5 von DB2 for LUW die Sicherheitskomponenten Trusted Context und Rolle eingeführt. Eine Datenbankrolle ist eine virtuelle Berechtigungs-ID, die einem Benutzer oder einer Gruppe zugeordnet ist. Sie ist ein Datenbankobjekt, in dem eine oder mehrere Berechtigungen zusammengefasst sind. Damit wird die Verwaltung von Berechtigungen vereinfacht. Es lassen sich für Benutzer mit gleichen Aufgaben Berechtigungsprofile erstellen, ohne dass Benutzergruppen außerhalb von DB2 zum Beispiel im Betriebssystem definiert werden müssen. Ein Trusted Context definiert eine gesicherte Verbindung zwischen einer DB2-Datenbank und einer externen Einheit wie einem Client oder einem Middleware- beziehungsweise Application-Server.

Das Problem bestand bislang darin, dass sich Application-Server mit einer DB2-Datenbank häufig über eine einzige User-ID verbinden, um darunter alle Anforderungen an DB2 zu stellen. Diese User-ID muss sämtliche administrativen Berechtigungen für den Server sowie diejenigen, die für die Ausführung der Anwendungen notwendig sind, besitzen. Die eigentliche Identifikation des Benutzers, der diese Anforderungen stellt, wird dabei nicht an DB2 weitergereicht. Eine Protokollierung oder Überwachung, welcher Benutzer welche Vorgänge in der Datenbank ausführt, ist also nicht möglich. Trusted Context erlaubt es nun, von der initiierenden User-ID des Servers auf die eigentliche User-ID des Endbenutzers umzuschalten.

Performance

Version 9.5 enthält zudem zahlreiche Performance-Verbesserungen. Dies gilt zum Beispiel für die Antwortzeiten komplexer Abfragen bezüglich Zeitreihen, Raumdaten oder LOBs (Large Objects). Als Alternative zu den bisher üblichen Sperren hat IBM eine "optimistische Concurrency-Kontrolle" eingeführt. Das optimistische Sperrverhalten dient der Vermeidung von Deadlocks und der Steigerung des Durchsatzes durch reduzierte Wartezeiten. Für Tabellenbereiche ist NO FILE SYSTEM CACHING Standard. Für neue Tablespace Container, die in Version 9.5 erstellt werden, versucht der Database Manager, wo immer möglich die Funktion Concurrent I/O (CIO) zu nutzen. Bei Systemkonfigurationen, die CIO nicht unterstützen, wird stattdessen Direct I/O (DIO) oder Buffered I/O benutzt. Parallelverarbeitung beim Index-Aufbau ist unabhängig vom Konfigurationsparameter für Intra-Parallelität standardmäßig aktiviert.

Maximale Längen der Identifier in Version 9.1 und 9.5

Identifier Name

Länge in Version 9.1 (Bytes)

Länge in Version 9.5 (Bytes)

Attribute

18

128

Authorization-ID (Authid)

30

128

Column

30

128

Constraint

18

128

Cursor

18

128

Database Partition Group

18

128

Event Monitor

18

128

Group

30

128

Package

8

128

Schema

30

128

Specific Name

18

128

SQL Path

254

2048

Statement

18

128

Trigger

18

128

User-defined Type

18

128

Applikationsentwicklung

Für die Anwendungsentwicklung wurden ebenfalls neue Features beziehungsweise Erweiterungen eingeführt, die der Vereinfachung etwa in Form einer besseren Portabilität dienen. Ein neuer Datentyp DECFLOAT (DECIMAL FLOAT) soll den bisher genutzten Datentyp DECIMAL (die "gepackte" Dezimalzahl des Mainframe) ablösen, weil dieser auf der LUW-Hardware nicht direkt unterstützt, sondern nur als Software-Datentyp dargestellt wird. Eine Hardware-Unterstützung für einen dezimalen Gleitkomma-Datentyp ist angekündigt. Besseren Support gibt es für Programmiersprachen wie PHP, Ruby on Rails, Perl sowie Microsoft Visual Studio 2005.

Die maximalen Längen der Identifier (Objektnamen) betragen jetzt 128 Bytes, was auch die Portierung von DDLs anderer Hersteller erleichtert, weil eine Kürzung der Objektnamen nicht mehr notwendig ist. Dies gilt jedoch nicht für die klassischen Programmiersprachen Embedded SQL, C und Cobol, weil die SQL DA noch die alten Begrenzungen behält: 8 Bytes für Schema-Namen von benutzerdefinierten Datentypen (UDTs), 18 Bytes für UDT-Namen und 30 Bytes für Spaltennamen. Ferner wurde die DB2 Developer Workbench in Data Server Developer Tool umbenannt.

Mögliche Definitionen für Schwellenwerte

Threshold

Bedeutung

Schutz vor …

Elapsed Time

abgelaufene Zeit zwischen Start und Beendigung einer Aktivität

Langläufer

Idle Time

abgelaufene Zeit, in der die Verbindung untätig war (idle)

uneffizienter Ressourcenverbrauch und Wartestati

Estimated Cost

geschätzte Kosten des DB2-Optimizer

verhindert den Start von aufwendigen SQL-Befehlen

Rows Returned

Anzahl der Zeilen, die vom aktuellen SQL-Befehl zurückgegeben wurden

extensive Ausgaben

Temporary Space

Verbrauch von temporärem Speicher in einer Partition

Behinderung anderer durch übermäßigen Speicherverbrauch

Concurent Workload Occurences

Anzahl aktiver Ausprägungen eines Workloads auf einer koordinierenden Partition (coordinator partition)

Überladung durch eine Quelle

Total Database Partition Connections

Anzahl Verbindungen zu einer bestimmten Partition

Schutz der Partition vor Überlastung

Total Service Class Connections

Anzahl Verbindungen zu einer Partition innerhalb einer Service-Klasse

Schutz der Partition vor Überlastung (verfeinert)

Concurrent Workload Activities

Anzahl von Aktivitäten innerhalb eines Workloads

begrenzt die Workload-Objekte

Concurrent Database Activities

Anzahl von Aktivitäten innerhalb eines Workloads

begrenzt die Aktivitäten innerhalb eines Workload-Objekts

Backup, Logging und Recovery

Zu den Verbesserungen im Bereich der Datensicherung zählen unter anderem die doppelten Log-Kontroll-Dateien (SQLOGCTL.LFH), die die Ausfallsicherheit erhöhen. Zur leichteren Sicherung und Wiederherstellung von mehreren Partitionen gibt es die neue Single-System-View–Sicherung. Das automatische Löschen von Sicherungen und alten Log-Dateien, die nicht mehr benötigt werden, vereinfacht das Objekt-Management. (ue)