CREATE USER-Anweisung (create_user_statement)
Die CREATE USER-Anweisung (
create_user_statement ) definiert einen Benutzer. Die Existenz und die Eigenschaften des Benutzers werden in Form von Metadaten im Katalog abgelegt.Syntax
<create_user_statement> ::= CREATE USER <user_name> PASSWORD <password>
[<user_mode>] [PERMLIMIT <unsigned_integer>] [TEMPLIMIT <unsigned_integer>]
[TIMEOUT <unsigned_integer>] [COSTWARNING <unsigned_integer>] [COSTLIMIT <unsigned_integer>] [[NOT] EXCLUSIVE]
| CREATE USER <user_name> PASSWORD <password> LIKE <source_user>
| CREATE USER <user_name> PASSWORD <password> USERGROUP <usergroup_name>
Erläuterung
Der aktuelle Benutzer muß ein DBA-Benutzer sein. Er wird Eigentümer des erzeugten Benutzers.
Der angegebene Benutzername darf nicht mit dem Namen eines existierenden Benutzers einer Benutzergruppe oder einer Rolle übereinstimmen.
Das Kennwort (
password ) muß bei der Eröffnung einer Datenbanksitzung angegeben werden. Es stellt sicher, daß nur berechtigte Benutzer Zugang zum Datenbanksystem erhalten.Die gegebenenfalls angegebene Integer-Zahl ohne Vorzeichen (
unsigned_integer ) muß stets größer als 0 sein.Benutzerklasse (
user_mode)Wenn keine Benutzerklasse oder die Benutzerklasse STANDARD angegeben wurde, dann darf PERMLIMIT nicht verwendet werden.
Wenn die Benutzerklasse DBA oder RESOURCE angegeben wurde, dann darf PERMLIMIT angegeben werden.
PERMLIMIT
Wenn PERMLIMIT angegeben wird, wird der für die privaten Tabellen eines Benutzers 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 diesem Benutzer 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 30 und 32400 liegen.
COSTWARNING/COSTLIMIT
Mit diesen Angaben kann verhindert werden, daß ein Benutzer 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 des Benutzers 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.
LIKE
Der aktuelle Benutzer muß das Eigentümerrecht an dem Quellbenutzer (
source_user ) besitzen.Wenn der Quellbenutzer nicht Mitglied einer Benutzergruppe ist, dann erhält der neu definierte Benutzer die gleiche Benutzerklasse und die gleichen Werte für PERMLIMIT, TEMPLIMIT, TIMEOUT, COSTWARNING und COSTLIMIT und für die EXCLUSIVE-Angabe wie der Quellbenutzer. Der neu definierte Benutzer erhält alle Privilegien, die der Quellbenutzer von anderen Benutzern verliehen bekommen hat.
Wenn der Quellbenutzer Mitglied einer Benutzergruppe ist, dann wird ein neues Mitglied dieser Benutzergruppe mit dem neu definierten Benutzernamen definiert.
USERGROUP
Der die SQL-Anweisung absetzende Benutzer muß Eigentümer der angegebenen Benutzergruppe sein. Der neu definierte Benutzer wird Mitglied dieser Benutzergruppe.