Die SET-Anweisung (set_statement) ändert die Eigenschaften einer Datenbanksitzung.
<set_statement> ::= SET ROLE ALL [EXCEPT <role_name>] | SET ROLE
NONE
| SET ROLE <role_name> [IDENTIFIED BY <password>]
| SET ISOLATION LEVEL <unsigned_integer>
role_name, password, unsigned_integer
Mittels DEFAULT ROLE wird in der ALTER USER-Anweisung bzw. in der ALTER USERGROUP-Anweisung festgelegt, welche der an den aktuellen Benutzer bzw. die Benutzergruppe vergebenen Rollen in der Benutzersitzung bzw. Gruppenmitgliedssitzung aktiv sind. Wenn eine Rolle aktiv ist, besitzt der aktuelle Benutzer alle Privilegien, die durch die Rolle zusammengefasst sind.
Falls dem aktuellen Benutzer mit Hilfe der ALTER USER-Anweisung bzw. der ALTER USERGROUP-Anweisung eine Rolle zugeordnet ist, die automatisch beim Eröffnen der Sitzung aktiviert wird, so wird sie mit Ausführung der SET-Anweisung deaktiviert, falls sie nicht auch durch die SET ROLE-Angabe der SET-Anweisung identifiziert wird.
· ALL: Alle Rollen, die dem aktuellen Benutzer vergeben wurden, sind aktiv. Durch EXCEPT können einzelne namentlich aufgeführte Rollen hiervon ausgenommen werden.
· NONE: Es ist keine Rolle aktiv.
·
Angabe
von Rollennamen: Die hierdurch identifizierten
Rollen müssen existieren und an den aktuellen Benutzer vergeben sein. Falls
für die Rolle ein Kennwort existiert, muss es außer vom Eigentümer der Rolle
in der SET-Anweisung angegeben werden.
Die durch den angegebenen Rollennamen identifizierte Rolle wird
aktiviert.
Die Angabe eines Isolation-Level verändert das Sperrverhalten für alle folgenden SQL-Anweisungen der aktuellen Datenbanksitzung. Das Isolation-Level wird durch eine Integer-Zahl ohne Vorzeichen nach den Schlüsselwörtern ISOLATION LEVEL festgelegt. Folgende Werte sind zulässig: 0, 1, 2, 3, 10, 15, 20 und 30.