Databases Reference
In-Depth Information
GRANT INSERT(artikel_nr,bezeichnung,verpackung,...),
UPDATE(artikel_nr,bezeichnung,...),
SELECT,
DELETE ON artikel TO lager;
GRANT UPDATE (verpackung) ON artikel_ohne_verpackung TO lager;
Protokollierte Bestandsänderungen
Als Beispiele betrachten wir folgende Geschäftsregeln:
Für jeden Zahlungsausgang ist zu verbuchen, wer diese Zahlung wann veran-
lasst hat.
Für jede Änderung des Artikelbestandes muss ein Änderungsbeleg vorhanden
sein. Eine solche Bestandsänderung kann z. B. sein: eine Position in einer Aus-
lieferung, eine Warenentnahme für betriebsinterne Zwecke, eine Entnahme von
beschädigter, defekter oder verdorbener Ware, ein Wareneingang vom Liefe-
ranten, die Aufnahme eines eigenen Produkts, die Rücknahme aus einer Liefe-
rung und als Letztes eine Bestandskorrektur, wenn bei einer Inventur eine
Abweichung des Istbestands vom Sollbestand nach Buchführung heraus-
kommt.
Die erste Aufgabenstellung können wir dadurch lösen, dass wir eine Tabelle
ueberweisung mit den Feldern veranlasser und zeitpunkt anlegen , auf die keine
Einfüge- und Änderungsrechte vergeben werden, aber stattdessen Standardwerte
durch DEFAULT-Klauseln (unveränderlich) festgelegt werden 16 , wie im Folgenden
dargestellt:
CREATE TABLE ueberweisung (
empfaenger CHAR(30) NOT NULL,
blz DECIMAL(8) NOT NULL,
konto_nr CHAR(10) NOT NULL,
betrag MONEY,
grund CHAR(120),
veranlasser CHAR(12) NOT NULL
DEFAULT CURRENT USER,
zeitpunkt TIMESTAMP NOT NULL
DEFAULT CURRENT TIMESTAMP
);
GRANT INSERT (empfaenger, blz, konto_nr, betrag, grund)
TO haushalt;
16 Falls - wie in Sybase SQL Anywhere - für das INSERT-Privileg keine Spalten angegeben werden
können, müssen wir auch hier den Umweg über eine Datensicht nehmen, die die beiden Attri-
bute veranlasser und zeitpunkt nicht enthält.
 
Search WWH ::




Custom Search