Select-Berechtigung auf ein View in einer Oracle Datenbank
Desöfteren ist es gewünscht, dass z.B, zu Reporting-Zwecken, nur ein lesender Zugriff auf eine Datenbank möglich ist. Hierfür wird, z.B. ein neuer Datenbank-Benutzer (neues Schema) auf der Oracle-Datenbank angelegt und dieser bekommt nur lesende Berechtigungen auf die Daten eines anderen Benutzers (Schemas). Falls nun neue Tabellen oder Views hinzukommen, und der lesende Benutzer darauf zugreifen soll, müssen allerdings, über Grants neue Berechtigungen, für die neuen Tabellen und Views auf dem Datenbank-Schema, das die Daten enthält, angelegt werden.
Hier ein Beispiel für einen Grant auf ein View in einem anderen Oracle-Schema der gleichen Oracle-Datenbank. Mit diesem Grant wird eine Select-Berechtigung für einen anderen Benutzer (hier ein nur lesender Benutzer) erteilt. Das selbe kann auch für Tabellen einfach übernommen werden.
GRANT SELECT ON VIEW_REPORTING TO READUSER
/
Und schon kann der lesende Benutzer auf diese Daten zugreifen.
Einen sehr ausführlichen Artikel über die Vergabe von Berechtigungen für Oracle-Datenbank mittels Grants findet Ihr unter “Control Access with Oracle Grant Security”
Näheres zu meiner Person findet Ihr unter
Hi,
die Frage ist sicher sehr leicht und dumm dass ich es nicht weiß. doch leider find ich nichts im Internet dazu.
Was bedeutet Schema? Aus deinem Artikel klingt es so als sei Schema mit Benutzer gleichzusetzen. Ist das so? Bezeichnet man nicht in der DB-Welt das Design/den Aufbau einer Datenbank mit all seinen Tabelenstrukturen usw. auch als Schema?
vielen Dank.
Nach meinem Kenntnisstand, kann man weitläufig, sowohl den Begriff des Oracle-Users als auch den Begriff Oracle-Schema nutzen.
Ein User ist ein Datenbankbenutzer, der bestimmte Datenbankberechtigungen (wie CONNECT, EXECUTE, CREATE, DROP …) hat und auch eigene Datenbankobjekte (Tables, Views, Procedures,…) besitzen kann. Diese Datenbankobjekte, die ein bestimmter Benutzer besitzt, werden auch Schema genannt.
Vereinfacht gesagt, ein Schema sind alle Datenbankobjekte, die einem bestimmten Datenbankbenutzer gehören.
Ich habe ein Schema A und ein Schema B. In A werden meine Tabellen und Views angelegt, in B möchte ich nun grundsätzlich Leserecht auf alle Objekte in A haben.
Ist es dafür wirklich notwendig, dass für jedes einzelne Objekt (Tabelle, View) ein eigenes Grant abgesetzt werden muss? Oder gibt es hierfür eine Möglichkeit eine generelle Leseberechtigung für B auf A einzurichten?
Desweiteren würde ich gerne in einem Datenbanktool (Toad) im Schemabrowser als User B alle Objekte (diesmal Tabellen, Views, Trigger, Indizies, etc…) des Schematas A angezeigt bekommen. Muss Schema B dafür für alle diese Objekte Synonyme haben oder andere Rechte?
Vielen Dank
Carsten, die Antwort auf deine Frage würde mich auch brennend interessieren…