2.4.3 Funktionsweise des VPD

Die in Abschnitt 2.3 erläuterten Mechanismen bedienen sich der Informationen aus PDW_SECURE. Bei jeder Anfrage des Nutzers an die Datenbank wird geprüft ob ein Eintrag in der Tabelle T015_GRANT vorhanden ist und anschließend verarbeitet. Damit die Mechanismen greifen, muss dem DBMS mitgeteilt werden welcher Nutzer jetzt mit der Datenbank verbunden ist. Das DBMS weiß nur welcher Schemanutzer angemeldet ist, aber nichts über den VPD Nutzer. Es gibt einen Unterschied ob Schemanutzer SCOTT nun als Mitarbeiter 1 oder Mitarbeiter 2 arbeitet. Über den Applikationskontext wird der VPD Nutzer mitgeteilt. Dazu muss nach der Anmeldung an das DBMS der Applikationskontext für den Nutzer gesetzt werden. Meldet sich der Nutzer über das Oracle Internet Directory (OID) an, so wird der Kontext automatisch gesetzt. Erfolgt die Anmeldung nicht über das OID, so muss der Applikationskontext vom Nutzer selbst mitgeteilt werden. Dazu genügt ein Aufruf der Funktion PDW_SECURE.check_Password('Nutzer','Passwort'). Wird nicht mitgeteilt welcher Nutzer mit dem DBMS arbeitet, gelten die vergebenen Standardrechte. Sie sperren zunächst jeglichen Zugriff auf die Tabellen des Schemas. In den meisten Fällen wird dann eine beliebige SQL-Anfrage im Schemakontext eine leere Ergebnismenge zurückgeben.

Karl Spies 2006-01-09