## 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>]
[TIMEOUT <unsigned_integer>]
[COSTWARNING <unsigned_integer>]
[COSTLIMIT <unsigned_integer>]
[[NOT] EXCLUSIVE]
[DEFAULTCODE <ASCII_or_UNICODE>]
[<connect_mode>]

<usergroup_mode> ::= RESOURCE | STANDARD
<ASCII_or_UNICODE> ::= ASCII | UNICODE
<connect_mode> ::= ENABLE CONNECT | DISABLE CONNECT

### Erläuterung

Der aktuelle Datenbankbenutzer muss ein Datenbankadministrator (DBA-Benutzer) sein.

Der angegebene Benutzergruppenname darf nicht mit dem Namen eines existierenden Datenbankbenutzers einer Benutzergruppe oder einer Rolle übereinstimmen.

Mit Hilfe der CREATE USER-Anweisung können mehrere Datenbankbenutzer definiert werden, die zu dieser Benutzergruppe gehören sollen. 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 angegebenen ganzen Zahlen ohne Vorzeichen unsigned_integer müssen stets größer als 0 sein.

Dem Benutzer steht für die Ablage seiner privaten und temporären Tabellen unbegrenzt viel Plattenplatz zur Verfügung (im Rahmen der bei der Installation angegebenen Größen der Data-Volumes).

#### Datenbankbenutzerklasse

Mittels usergroup_mode wird beim Anlegen einer Benutzergruppe die Datenbankbenutzerklasse RESOURCE oder STANDARD für diese Benutzergruppe festgelegt.

Wenn bei Definition einer Benutzergruppe keine Datenbankbenutzerklasse angegeben wird, wird implizit STANDARD angenommen.

Die Datenbankbenutzerklasse RESOURCE schließt alle Rechte ein, die ein STANDARD-Benutzer hat.

#### TIMEOUT

Die Angabe des Timeout-Werts erfolgt in Sekunden und muss im Bereich von 30 und 32400 liegen.

Nur der Datenbanksystemadministrator (SYSDBA-Benutzer) darf Benutzer mit dem Timeout-Wert 0 definieren.

#### COSTWARNING/COSTLIMIT

Mit diesen Angaben kann verhindert werden, dass 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 muss größer als der COSTWARNING-Wert sein.

#### EXCLUSIVE

Wenn die EXCLUSIVE-Bedingung nicht angegeben wird, dann wird implizit NOT EXCLUSIVE angenommen.

● 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.

#### DEFAULTCODE ASCII, DEFAULTCODE UNICODE

Für die Objekte des angegebenen Benutzers wird der Wert des speziellen Datenbankparameters DEFAULT_CODE mit dem in DEFAULTCODE angegebenen Codeattribut übersteuert.

#### ENABLE CONNECT, DISABLE CONNECT

Mittels connect_mode definieren Sie, ob später definierte Mitglieder der Benutzergruppe Datenbanksitzungen eröffnen können. Dies gilt jedoch nur, wenn in der CREATE USER-Anweisung des jeweiligen Gruppenmitgliedes kein CONNECT-Modus angegeben ist.

Wenn kein CONNECT-Modus angegeben ist, wird implizit ENABLE CONNECT angenommen. ENABLE und DISABLE dürfen nicht gleichzeitig angeben sein.

● ENABLE CONNECT : Mitglieder der Benutzergruppe können Datenbanksitzungen eröffnen.

● DISABLE CONNECT: Mitglieder der Benutzergruppe können keine Datenbanksitzungen eröffnen.