7 DCL (Data Control Language)

Ähnliche Dokumente
1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Tag 4 Inhaltsverzeichnis

View. Arbeiten mit den Sichten:

SQL (Structured Query Language) Schemata Datentypen

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Tag 4 Inhaltsverzeichnis

Die Grundbegriffe Die Daten Die Informationen

Unterabfragen (Subqueries)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Datenbanken: Transaktionskonzept und Concurrency Control

Benutzerverwaltung, Sichten und Datenintegrität

Einführung in SQL Datenbanken bearbeiten

9 Transaktionskonzept

S(tructured)Q(uery)L(anguage)

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Transaktionsverwaltung

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

ARIS II - Modellierungsmethoden, Metamodelle und Anwendungen

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

Transaktionen in der Praxis. Dr. Karsten Tolle

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Datenadminstrator, Datenbankdesigner, Systemanalytiker (für die logische Sicht zuständig)

P.A. Bernstein, V. Hadzilacos, N. Goodman

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

Übersicht über Datenbanken

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Datenbankadministration

Bibliografische Informationen digitalisiert durch

Datenintegrität und Transaktionskonzept

Microsoft Access 2010 SQL nutzen

Views in SQL. 2 Anlegen und Verwenden von Views 2

IBM Informix SQL. Seminarunterlage. Version vom

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Software-Engineering und Datenbanken

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Eine weitere Möglichkeit "die grosse weite Welt" zu erschliessen sind ODBC/JDBC bzw. ESS Verbindungen.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Arbeiten mit einem lokalen PostgreSQL-Server

Literatur und Quellen. Datenbanken. Inhalt. Inhalt. Transaktionen. Nikolaus Augsten. Wintersemester 2013/14

SQL Einstieg und Anwendung

Oracle SQL Tutorium - Wiederholung DB I -

Transaktionen und Synchronisation konkurrierender Zugriffe

6 Sicherheitskonzepte in Oracle

SQL-Anweisungen. SELECT (SQL Data Query Language)


DB2 SQL, der Systemkatalog & Aktive Datenbanken

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

SQL-Gebiet. Datenbank-Funktionen jenseits SQL. Datenbankfunktionen: SQL und andere. create table, create view, mater. View, create index, drop jeweils

Datenbanken. Ein DBS besteht aus zwei Teilen:

Transaktionen Recovery Isolationslevel. Datenbanksysteme. Transaktionen. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

SQL structured query language

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Datumsangaben, enthält mindestens Jahr, Monat, Tag

IV. Datenbankmanagement

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

SQL-Injection. Seite 1 / 16

PostgreSQL im praktischen Einsatz. Stefan Schumacher

Datenbank- Programmierung mit InterBase

CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank

105.3 SQL-Datenverwaltung

3.17 Zugriffskontrolle

Arbeiten mit ACCESS 2013

JOIN-Strategien eines Optimizers (1)

Sructred Query Language

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Erste Schritte, um selber ConfigMgr Reports zu erstellen

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

4. Datenbanksprache SQL

11 Rechte und Views Views

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

Vorwort 11. Eine neue Datenbank erstellen 79;

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

Datenbanken (WS 2015/2016)

INFORMATIONSUNTERLAGEN. Grundzüge der SQL-Programmierung. Vag 09/2005

MySQL. MySQL ist ein Datenbanksystem. Es besteht aus einem zentralen Server und aus (mehreren) Clients. Es benutzt einen Dialekt der Sprache SQL.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

select DISTINCT Name, ort From Verkauf; selektiert Name und Ort von Tabelle Verkauf - DISTINCT steht dass keine Zeile mehrfach vorkommt

Inhaltsverzeichnis. jetzt lerne ich

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering

Datenbankenseminar: SAP Reporting Vergleich ABAP vs. Quick View. Dipl. WiFo Sven Adolph

Datenbanken für Online Untersuchungen

Transaktionsverwaltung

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

MySQL Installation. AnPr

Datenbanken und SQL. Kapitel 1. Übersicht über Datenbanken. Edwin Schicker: Datenbanken und SQL (1)

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Transkript:

7 DCL (Data Control Language) 7 In diesem Kapitel werden wir die der SQL-Befehle für Transaktionen und für die Vergabe von Privilegien kennen lernen. Eine der wichtigsten Eigenschaften einer Datenbank besteht in der Mehrplatz-Fähigkeit. Wie man sich leicht vorstellen kann, ist der gemeinsame Zugriff von mehreren Anwendern auf die gleichen Daten problematisch und erfordert deshalb eine besondere Behandlung. Die Mehrplatz-Fähigkeit führt jedoch zu einem neuen Problem, nämlich zum Datenschutz und der daraus folgenden Privilegienvergabe. 7.1 Behandlung von Transaktionen In Datenbanksprachen werden Befehlsfolgen in logische Bereiche (Transaktionen) zusammengefasst. Eine Transaktion beginnt mit dem ersten SQL- Befehl oder der Anweisung BEGIN TRANSACTION und endet mit einem COMMIT (TRANSACTION) oder einem ROLLBACK, dann beginnt die nächste Transaktion usw. Alle Befehle einer Transaktion sollten zusammengehören. Im Falle eines Systemausfalls (Platte voll, Stromausfall, Hardware- Fehler...) garantiert die Datenbank, dass entweder die Transaktion als ganzes durchgeführt werden kann oder überhaupt nicht. Dies garantiert eine konsistente Datenbank! SQL Structured Query Language 91

7.1.1 COMMIT - Statement (Transaktion abschließen) Mit dem SQL-Befehl COMMIT kann man eine Transaktion erfolgreich abschließen. In jedem "SQL-Programm", in dem Daten geändert werden, ist die Verwendung von COMMIT notwendig. Jede Veränderung von Daten ist dem ausführenden Benutzer sofort nach der Ausführung sichtbar: Allen anderen Benutzern ist jedoch eine Transaktion nur nach der Ausführung vom COMMIT sichtbar. COMMIT [WORK TRANsaction] Der Zusatz Work bzw. Transaction ist im ANSI SQL notwendig. Die meisten Datenbanksysteme erlauben jedoch, einfach ein COMMIT anzugeben. COMMIT und COMMIT WORK bewirken dasselbe. Beispiel Wenn wir uns z.b. von dem Kunden 'MARKUS' trennen müssen, so lässt sich dies in der Datenbankterminologie so formulieren: BEGIN TRANSACTION DELETE FROM Kunden WHERE Nr = 3 DELETE FROM Kunden_Gebiete WHERE K_Nr = 3 DELETE FROM Kunden_Interessen WHERE K_Nr = 3 COMMIT TRANSACTION... Kommt nach dem ersten DELETE ein Systemausfall, so führt die Datenbank überhaupt keine Änderung der Daten durch. 7.1.2 ROLLBACK - Statement (Transaktion verwerfen) Im Gegensatz zum COMMIT - Befehl, wird der ROLLBACK - Befehl viel seltener verwendet. Mit einem ROLLBACK - Befehl kann man alle Transaktionen vom letzten COMMIT oder ROLLBACK verwerfen. ROLLBACK [WORK TRANsaction] [SAVEPOINT <savepointname>] 92 ikon 2003

Die Verwendung von einem Savepoint ermöglicht, eine feinere Transaktion darzustellen. Dann erfolgt das Zurücksetzen des Datenbestandes nur bis zum angegebenen Punkt im Programm. Wir möchten an dieser Stelle den Leser darauf aufmerksam machen, dass die Verwendung von Savepoints nicht anzuraten ist, weil sie der Übersicht schadet. 7.2 Mehrfachzugriff auf Tabellen und Sperrstrategien Achtung: Das explizite Sperren von Tabellen ist nicht ANSI - Standard. D.h. die hier vorgestellten Befehle sind nur als eine Möglichkeit und nicht als ANSI - zu betrachten. Unabhängig von einer expliziten Sperre werden die Datensätze bei jedem UPDATE von allen relationalen Datenbanksystemen bis zu einem Commit automatisch gesperrt. Beispiel : Wir erweitern unser Übungsmodell um eine Tabelle: REISEN. In dieser Tabelle stehen alle Gruppenreisen und die vorhandenen Plätze, die das Reisebüro anbietet. REISEN NR BEZ VON BIS PLÄTZE 1 Rom 23.03.1993 03.04.1993 3 Unser Reisebüro beschäftigt zwei Angestellte, die den Kunden beraten und dabei ein Informationsprogramm verwenden. Beide Berater haben gleichzeitig zwei Kunden, die sich für eine Reise nach Rom interessieren. Beide Kunden entscheiden sich für die Reise und möchten zwei bzw. drei Plätze reservieren. Insgesamt sind also fünf Plätze notwendig, vorhanden sind jedoch nur drei. Die zwei Angestellten des Reisebüros wissen jedoch von dem Zufall nichts und führen die Buchung aus! Berater 1 Berater 2 Bestimmt freie Plätze -> 3 Bestimmt freie Plätze -> 3 Bucht : freie Plätze = 3 2 Speichert die Zahl 1 unter freie Plätze Bucht : freie Plätze = 3-3 Speichert die Zahl 0 unter freie Plätze Wir sehen, das Reisebüro würde wahrscheinlich viele Kunden verlieren, falls dieses EDV- System verwendet würde. Das Problem lässt sich jedoch lösen, indem die Tabelle oder nur die betreffenden Datensätze vor der Änderung gesperrt und nach der Änderung wieder freigegeben werden. SQL Structured Query Language 93

Eine gesperrte Tabelle wird mit COMMIT oder ROLLBACK wieder freigegeben! Im folgenden lernen wir drei verschieden Arten des Sperrens. Wir möchten hier keinen Anspruch auf Vollständigkeit erheben. Das Sperren von Datensätze ist nicht im ASCII-SQL enthalten. Die hier angebotene Lösung ist nur eine Möglichkeit von vielen. 7.2.1 SHARE LOCK Mit SHARE LOCK kann die Tabelle für das Verändern und Löschen von Datensätzen gesperrt werden. Die Tabelle kann von mehreren Benutzern gleichzeitig im SHARE Modus gesperrt werden. Sie kann wieder verändert und gelöscht werden, wenn alle Benutzer, die die Tabelle im SHARE Modus gesperrt haben, sie freigeben. Die übliche für ein SHARE LOCK: LOCK TABLE [<User>.]<tablename> IN SHARE [nowait] Diese wird nicht von allen Datenbanksystemen unterstützt! Achtung: SHARE LOCK ist nur selten wirklich notwendig und ist hier nur der Vollständigkeit halber erwähnt. Das obige Beispiel kann man mit dieser Methode nicht lösen. 7.2.2 EXCLUSIVE LOCK Mit EXCLUSIVE LOCK kann man ganze Tabellen für alle anderen Benutzer sperren. Nach dem Sperren können die gesperrten Tabellen nur vom Sperrenden verändert und gelöscht, von allen anderen aber nur gelesen werden. Diese Art des Sperrens ist zwar sehr sicher und auch einfach in der Anwendung, führt aber in vielen Applikationen zu großen Wartezeiten für alle anderen Benutzer und wird deshalb nicht allzu oft verwendet. Die übliche für ein EXCLUSIVE LOCK: LOCK TABLE [<User>.]<tablename> IN EXCLUSIVE [nowait] Diese wird nicht von allen Datenbanksystemen unterstützt! 94 ikon 2003

7.2.3 EXCLUSIVE LOCK für Zeilen Das Sperren von einzelnen Zeilen ist sicherlich die beste Möglichkeit, das obige Problem zu lösen. Im Allgemeinen empfehlen wir die Verwendung der hier vorgestellten Methode, falls das Sperren von Daten notwendig ist. Manche DB-Systeme (z.b. MS SQL-Server) erlauben jedoch keine Zeilensperrung. Wie die Überschrift schon besagt, kann man auch einzelne Zeilen einer Tabelle ausschließlich sperren. Das bedeutet, dass die gesperrten Zeilen von keinem anderen Benutzer verändert oder gelöscht werden können, bis der Sperrende die Zeilen mit COMMIT oder ROLLBACK freigibt. SELECT... FROM... [WHERE...] [ORDER BY...] FOR UPDATE OF <Spalte1> [, <Spalte2>]... Achtung: Wenn man die FOR UPDATE OF-Klausel verwendet, darf die GROUP BY - Klausel nicht angewandt werden. Beispiel SELECT Bez, Von, Bis, Plaetze FROM Reisen WHERE Bez = 'Rom' FOR UPDATE OF Plaetze UPDATE Reisen SET Plaetze = Plaetze Anzahl_der_zu_reservierenden_Plätze WHERE Bez = 'Rom' Commit Wir lösen das obige Beispiel: Anzahl_der_zu_reservierenden_Plätze wäre im ersten Fall 2, im zweiten Fall 3. SQL Structured Query Language 95

7.3 Weitere Lock-Methoden Einige DB-Systeme bieten die Möglichkeit mittels dem SET - Befehl, die Lesbarkeit von Tabellen zu beeinflussen: SET transaction isolation level READ COMMITTED READ UNCOMMITTED REPEATABLE READ SERIALIZEABLE READ COMMITTED: Es können nur jene Datensätze gelesen werden, die schon mit COMMIT abgeschlossen wurden. In dieser Stufe sind keine nichtwiederholbaren Lesevorgänge (so genannte Dirty Reads ) möglich. Phantomwerte sind sehr wohl möglich! READ UNCOMMITTED: Es können auch jene Datensätze gelesen werden, die noch nicht mit COMMIT abgeschlossen wurden. Dirty Reads und Phantomwerte sind möglich. REPEATABLE READ oder SERIALIZEABLE: Es sind weder Dirty Reads noch Phantomwerte möglich. Diese Einstellung sollte jedoch nur in ganz besonderen Fällen verwendet werden, da die betroffenen Tabellen während der Transaktion gesperrt sind. Manche DB-Systeme erlauben das Überschreiben der Sperranweisung auch innerhalb des SELECT - Statements. 7.4 Privilegienbehandlung Von Datenschutzverletzungen kann schon mancher ein Lied singen. In der EDV gehört dieses Problem sicherlich zu den heikelsten Themen überhaupt. Durch eine richtige Privilegienvergabe, die nur bestimmten Benutzern bestimmte Daten zur Verfügung stellt, kann sich ein Betrieb in einigen Fällen eine Gerichtsklage oder andere Unannehmlichkeiten ersparen. Man kann Privilegien aus zwei verschiedenen Sichten vergeben. Aus der Sicht des Benutzers Aus der Sicht von Tabellen oder Views Beide Formen der Privilegienvergabe erfolgen mit dem GRANT - Statement. 96 ikon 2003

7.4.1 Das GRANT - Statement (für Benutzer) Eine effiziente Art, Daten und Datenstrukturen vor unerlaubtem Zugriff zu schützen, ist das Unterteilen von Benutzern in Anwendergruppen. GRANT { RESOURCE DBA } TO <User1> [, <User2>...] oder GRANT CONNECT TO <User1> [, <User2>...] identified by <Password1> [,<Password2>...] Es besteht die Möglichkeit, gleich mehrere Anwender mit dem GRANT Befehl zu bearbeiten. Bei Anlegen eines Anwenders (CONNECT) sollte auch ein Passwort mitgegeben werden. In Relationalen Datenbanken werden oft folgende Arten von Anwendergruppen unterschieden (Anwendergruppen sind nicht ANSI normiert!). SQL Structured Query Language 97

Gruppe CONNECT Beschreibung Erlaubt sind alle DML - Operationen mit Ausnahme jener Einschränkungen, die auf der Tabellen- oder Viewebene gelten. Die CONNECT - Rechte erlauben dem Benutzer den Zutritt zur Datenbank und müssen vor allen anderen Rechten vergeben werden. Sie sind die einfachsten Rechte, die in einer Datenbank möglich sind und sind für Applikationsanwender gedacht. RESOURCE Erlaubt sind die Rechte von CONNECT, alle Operationen der DDL für eigene Tabellen und die Rechtevergabe (REVOKE) für die eigenen Tabellen. Der Benutzer besitzt alle Rechte einer selbst angelegten Tabelle! Die RESOURCE - Rechte sind für den Programmierer gedacht, sie garantieren ein kollisionsloses Arbeiten in einer Mehrplatz- Datenbank. DBA Erlaubt sind die Rechte von RESOURCE, jedoch nicht nur für die eigenen Tabellen, sondern auch für alle anderen. Das Einfügen oder Ändern von Benutzerprivilegien ist nicht erlaubt. Die DBA-Rechte sind, wie der Name schon verrät, für den Datenbankadministrator gedacht. SYSADM oder SA Erlaubt sind alle in einer Datenbank möglichen Rechte, d.h. auch das Anlegen/Löschen/Verändern von Anwender. Ein SYSADM ist schon von Anfang an in jeder Datenbank vorhanden, diese Rechte können mit dem GRANT - Befehl weder angelegt noch verändert werden. Man kann (was auch empfehlenswert ist) mit dem GRANT - Befehl nur das Passwort ändern. 98 ikon 2003

Beispiel Wir möchten drei Benutzer anlegen. Alex soll die dba - Rechte, Johannes die RESOURCE - Rechte und Andreas die CONNECT - Rechte erhalten. GRANT CONNECT TO alex, johannes, andreas IDENTIFIED BY alex, johannes, andreas GRANT RESOURCE TO johannes GRANT DBA TO alex 7.4.2 Das GRANT - Statement (für Tabellen) Die bis jetzt vorgestellte Rechtevergabe reicht sicherlich nicht, um einen intakten Datenschutz zu garantieren. Deshalb besteht die Möglichkeit, jede Tabelle oder jeden VIEW auf nur ausgewählte Benutzer zu beschränken. GRANT { <Privileg1> [, <Privileg1>..] } ALL ON [<User1>.]<Objekt> TO {<User2> [, <User3>...]} PUBLIC Folgende Privilegien sind möglich: ALL Alle möglichen Rechte auf die Tabelle oder den VIEW sind erlaubt. SELECT Lesen in der Tabelle oder im VIEW ist erlaubt. INSERT Einfügen in eine Tabelle oder einen VIEW ist erlaubt. DELETE Löschen in einer Tabelle oder einem VIEW ist erlaubt. SQL Structured Query Language 99

INDEX Erzeugen von Indizes für eine Tabelle ist erlaubt. ALTER Tabellenstruktur verändern ist erlaubt. UPDATE oder UPDATE (Spalte,[Spalte... ]) Verändern von Daten in einer Tabelle ist erlaubt. Wenn man bei der Rechtevergabe einzelne Spalten angibt, so können nur die Daten der angegebenen Spalten verändert werden. Ein Objekt ist eine Tabelle oder ein VIEW. Mit der Option PUBLIC können die Rechte einer Tabelle oder eines Views für alle Datenbankbenutzer vergeben werden. Beispiel Die Tabelle Kunden soll für alle Benutzer zugänglich sein. GRANT ALL ON Kunden TO PUBLIC Beispiel Die Tabelle Interessen soll für Andreas nur lesbar sein. GRANT SELECT ON Interessen TO andreas Beispiel Die Tabelle Reisen soll für Andreas lesbar und für die Spalte "Plätze" veränderbar sein. GRANT SELECT, UPDATE(Plätze) ON Reisen TO andreas 100 ikon 2003

7.4.3 Das REVOKE - Statement (Aufgabe von Privilegien) In einem Software-Projekt ist die Fluktuation von Mitarbeitern sehr hoch. Vergebene Rechte sollten deshalb bei Abgang eines Mitarbeiters im Sinne des Datenschutzes wieder entzogen werden. Dies lässt sich mit dem Befehl REVOKE erreichen. Auf Benutzerebene: revoke {CONNECT RESOURCE DBA } FROM <User1> [, <User2>...] Auf Tabellen- oder Viewebene: revoke {ALL SELECT INSERT DELETE INDEX ALTER UPDATE UPDATE(<Spalte1> [, <Spalte2>...])} ON {<Tabellenname> <Viewname>} FROM {PUBLIC <User1> [, <User2>...]} Beispiel Andreas darf die Tabelle Interessen nicht mehr lesen. revoke SELECT ON Interessen FROM andreas 7.5 Verbindung zur Datenbank Die Verbindung zur Datenbank ist der erste Schritt, wenn man eine Datenbank in Anspruch nehmen möchte. Bei der Verwendung einer SHELL geschieht dies normalerweise beim Aufruf der SHELL. Zu diesem Zeitpunkt muss der potentielle Datenbankanwender zumindest die CONNECT - Privilegien besitzen. Wenn man aus einer anderen Sprache SQL verwenden oder in einer SQL-SHELL einen User wechseln möchte, kann das CONNECT- und DISCONNECT - Statement angewendet werden. SQL Structured Query Language 101

7.5.1 Das CONNECT - Statement Verbindung zu einer Datenbank herstellen. CONNECT [<Datenbankname>] <cursor-number> [<User> [/<Password>]] Cursor-number ist eine eindeutige Zahl, die eine Verbindung zu einer bestimmten Datenbank ermöglicht. Besonders dann, wenn eine Programmiersprache verwendet wird, können mehrere Datenbanken gleichzeitig verwendet werden. Diese Option ist jedoch nicht in allen Datenbanken möglich! 7.5.2 Das DISCONNECT - Statement Verbindung zu einer Datenbank abbrechen. DISCONNECT [<Datenbankname>] <cursor-number> 102 ikon 2003