Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Gespeicherte Prozeduren, Trigger, Batches und benutzerdefinierte Funktionen » Trigger

 

Privilegien zum Ausführen von Triggern

Sie können kein Privileg zum Ausführen eines Triggers erteilen, weil Trigger nicht von Benutzern ausgeführt werden können. SQL Anywhere löst sie vielmehr als Reaktion auf Aktionen in der Datenbank aus. Trotzdem sind einem Trigger Privilegien zugeordnet, die sein Recht definieren, bestimmte Aktionen auszuführen.

Trigger werden mit den Privilegien des Eigentümers der Tabelle ausgeführt, für die sie definiert sind, und weder mit den Privilegien des Benutzers, der das Auslösen des Triggers verursacht hat, noch mit den Privilegien des Benutzers, der den Trigger erstellt hat.

Wenn ein Trigger auf eine Tabelle Bezug nimmt, benutzt er die Rollenmitgliedschaften des Tabellenerstellers zur Ermittlung der Position von Tabellen, für die kein expliziter Eigentümername angegeben wurde. Wenn beispielsweise ein Trigger für die Tabelle "Benutzer_1.Tabelle_A" die Tabelle "Tabelle_B" referenziert und den Eigentümer der "Tabelle_B" nicht angibt, muss entweder die "Tabelle_B" von "Benutzer_1" erstellt worden sein oder "Benutzer_1" muss (direkt oder indirekt) Mitglied einer Rolle sein, die Eigentümer von "Tabelle_B" ist. Wenn keine Bedingung zutrifft, gibt der Datenbankserver beim Auslösen des Triggers eine Meldung zurück, wonach die Tabelle nicht gefunden werden kann.

Benutzer_1 benötigt außerdem die erforderlichen Privilegien zum Ausführen der im Trigger angegebenen Vorgänge.

 Siehe auch