CREATE USERGROUP-Anweisung (create_usergroup_statement)
Die CREATE USERGROUP-Anweisung (
create_usergroup_statement ) definiert eine Benutzergruppe.Syntax
<create_usergroup_statement> ::= CREATE USERGROUP <usergroup_name>
[<usergroup_mode>] [PERMLIMIT <unsigned_integer>] [TEMPLIMIT <unsigned_integer>]
[TIMEOUT <unsigned_integer>] [COSTWARNING <unsigned_integer>] [COSTLIMIT <unsigned_integer>] [[NOT] EXCLUSIVE]
Erläuterung
Der aktuelle Benutzer muß ein DBA-Benutzer sein.
Der angegebene Benutzergruppenname darf nicht mit dem Namen eines existierenden Benutzers einer Benutzergruppe oder einer Rolle übereinstimmen.
Mit Hilfe der
CREATE USER-Anweisung können mehrere Benutzer definiert werden, die zu dieser Benutzergruppe gehören. Alle privaten Objekte, die durch Mitglieder der Benutzergruppe erzeugt werden, werden durch den Benutzergruppennamen identifiziert. Der Eigentümer eines privaten Objekts ist die Benutzergruppe, nicht der Benutzer, der das Objekt erzeugt hat. Jeder Benutzer kann mit allen privaten Objekten der Benutzergruppe so arbeiten, als wäre er der Eigentümer des Objekts. Privilegien können nur der Benutzergruppe gegeben bzw. entzogen werden. Es ist nicht möglich, einem einzelnen Mitglied der Benutzergruppe ein Privileg zu geben bzw. zu entziehen.Die gegebenenfalls angegebene Integer-Zahl ohne Vorzeichen (
unsigned_integer ) muß stets größer als 0 sein.Benutzerklasse der Benutzergruppen (
usergroup_mode)Wenn keine Benutzerklasse für die Benutzergruppe oder die Benutzerklasse STANDARD angegeben wurde, dann darf PERMLIMIT nicht verwendet werden.
PERMLIMIT
Wenn PERMLIMIT angegeben wird, wird der für die privaten Tabellen eines Benutzers dieser Benutzergruppe zur Verfügung stehende Plattenplatz begrenzt. Die Angabe erfolgt in Einheiten von 8 KB.
Fehlt die Angabe von PERMLIMIT, so steht diesem Benutzer für die Ablage seiner privaten Tabellen unbegrenzt viel Plattenplatz zur Verfügung (im Rahmen der bei der Installation angegebenen Größen der Data-Devspaces).
TEMPLIMIT
Wenn TEMPLIMIT angegeben wird, wird der einem Benutzer dieser Benutzergruppe zum Aufbau temporärer Ergebnistabellen, temporärer Basistabellen und für die Ausführungspläne zur Verfügung stehende Plattenplatz begrenzt. Die Angabe erfolgt in Einheiten von 8 KB.
Fehlt die Angabe von TEMPLIMIT, so steht diesem Benutzer unbegrenzt viel Plattenplatz zur Verfügung (im Rahmen der bei der Installation angegebenen Größen der Data-Devspaces).
TIMEOUT
Der TIMEOUT-Wert definiert die Zeit, die maximal zwischen der Beendigung einer SQL-Anweisung und dem Abschicken der nächsten SQL-Anweisung liegen darf. Dieser Wert ist der maximale Wert, der in der CONNECT-Anweisung als TIMEOUT-Wert angegeben werden darf.
Die Angabe des TIMEOUT-Wertes erfolgt in Sekunden und muß im Bereich von 0 und 32400 liegen.
COSTWARNING/COSTLIMIT
Mit diesen Angaben kann verhindert werden, daß ein Benutzer dieser Benutzergruppe beliebig komplizierte und damit kostenintensive QUERY-Anweisungen oder INSERT-Anweisungen der Form INSERT...SELECT... ausführen kann.
Vor Ausführung einer dieser SQL-Anweisungen werden die durch die Ausführung zu erwartenden Kosten geschätzt. Dieser SELECT-Kosten-Schätzwert kann mit der
EXPLAIN-Anweisung ausgegeben werden. Der SELECT-Kosten-Schätzwert wird im interaktiven Betrieb mit den für den Benutzer angegebenen Werten für COSTWARNING und COSTLIMIT verglichen.Für QUERY-Anweisungen oder INSERT-Anweisungen der Form INSERT...SELECT..., die in eine Programmiersprache eingebettet sind, werden die Werte COSTWARNING und COSTLIMIT nicht beachtet.
COSTWARNING: Dieser Wert gibt an, ab welchem SELECT-Kosten-Schätzwert der Benutzer eine Warnung erhält. Im Falle einer Warnung wird der Benutzer gefragt, ob die SQL-Anweisung wirklich ausgeführt werden soll.
COSTLIMIT: Dieser Wert gibt an, ab welchem SELECT-Kosten-Schätzwert die SQL-Anweisung nicht ausgeführt wird.
Der COSTLIMIT-Wert muß größer als der COSTWARNING-Wert sein.
EXCLUSIVE
EXCLUSIVE
: Es ist nicht möglich, gleichzeitig zwei verschiedene Datenbanksitzungen eines Benutzers dieser Benutzergruppe zu eröffnen.NOT EXCLUSIVE: Es ist möglich, gleichzeitig mehrere Datenbanksitzungen des Benutzers zu eröffnen.
Wenn die EXCLUSIVE-Bedingung nicht angegeben wird, dann wird implizit EXCLUSIVE (ohne NOT) angenommen.