Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird: Update in Table A benötigt Rechte für Table B (https://www.delphipraxis.net/183749-firebird-update-table-benoetigt-rechte-fuer-table-b.html)

Gloegg_FHBI 2. Feb 2015 11:26

Datenbank: Firebird • Version: 2.x • Zugriff über: IBQuery

Firebird: Update in Table A benötigt Rechte für Table B
 
Hallo,

Ich habe ein mysteriöses Phänomen in einer unserer Datenbanken.

Dort gibt es u.a. diese beiden Tabellen:

USER_PRO
Code:
CREATE TABLE USER_PRO (
  ID INTEGER NOT NULL,
  "NAME" VARCHAR(30),
  PASSWORT VARCHAR(30),
  PROJECT VARCHAR(50),
  HAUPTUSER SMALLINT,
  NURLESEN SMALLINT,
  DATENBANK VARCHAR(1));


ALTER TABLE USER_PRO ADD PRIMARY KEY (ID);
und

ZZ_AUD_VISIT_PRO
Code:
CREATE TABLE ZZ_AUD_VISIT_PRO (
  O_ID INTEGER,
  N_ID INTEGER,
  O_PROJECT VARCHAR(50),
  N_PROJECT VARCHAR(50),
  O_SORTORDER INTEGER,
  N_SORTORDER INTEGER,
  O_VISIT VARCHAR(50),
  N_VISIT VARCHAR(50),
  O_CHGLG_ID INTEGER,
  N_CHGLG_ID INTEGER,
  O_VISIT_VALUE VARCHAR(200),
  N_VISIT_VALUE VARCHAR(200),
  AUSER VARCHAR(20),
  AFIELD VARCHAR(20),
  ADATE TIMESTAMP,
  AID INTEGER,
  CONN_ID INTEGER);
ZZ_AUD_VISIT_PRO ist die Audit Trail Tabelle der Tabelle VISIT_PRO d.h. es werden alle Änderungen an VISIT_PRO in ZZ_AUD_VISIT_PRO per DB-Trigger dokumentiert.
USER_PRO hat ebenfalls eine eigene Audit Trail Tabelle mit einem eigenen Satz Trigger.

Die DB-User haben für normale Tabellen alle Rechte (SELECT, INSERT, UPDATE, DELETE, REFERENCE).
Für Audit Trail Tabellen haben sie lediglich (SELECT, INSERT, REFERENCE)

Wenn man nun dieses SQL ausführt:
Code:
UPDATE USER_PRO SET DATENBANK = 'T' WHERE ID = 4886
bekommt man diesen Fehler:
This user does not have privilege to perform this operation on this object.No permission for update/write access to COLUMN USER_PRO.DATENBANK.

Bekommt der User das UPDATE-Recht für die ZZ_AUD_VISIT_PRO, wird das Update korrekt ausgeführt.

Warum gibt es da diese Abhängigkeit?

Die Trigger wurden hier schon von mehr als zwei Paar Augen überprüft, die machen lediglich ein INSERT in ihre jeweiligen Audit Trail Tabelle.

mkinzler 2. Feb 2015 11:32

AW: Firebird: Update in Table A benötigt Rechte für Table B
 
Trigger werden im selben Kontext ausgeführt, wie die Statements, welche diese auslösen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz