Der Informatik Student

Studieren geht über probieren …
  • Home
  • Der Autor
  • Tag Wolke
  • Viren-Info
  • Datenschutz
  • Kontakt
  • Impressum

Select-Berechtigung auf ein View in einer Oracle Datenbank

Erstellt am Freitag, 16. Juni 2006 von Joachim Schuler

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”

Abgelegt in der Kategorie: Datenbank

Interne Tags: Tags: Datenbank, oracle, Security

6 Kommentare bisher

  1. x-ray am 15. März 2007

    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.

  2. Joachim am 15. März 2007

    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.

  3. Carsten am 15. Oktober 2008

    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

  4. Arnibert am 10. November 2008

    Carsten, die Antwort auf deine Frage würde mich auch brennend interessieren…

  5. MiKe am 28. April 2009

    Hallo,

    wir hatten mal ein Problem für einen ODBC-Nutzer. Um die Rechte an den Tabellen für den Benutzer “ODBC” mit der Rolle “odbc_role” zu setzen, kann man sich aus Oracle ein SQL-Skript gererieren lassen:

    set heading off
    set feedback off
    set pages 0
    spool grant_odbc_ro.sql
    select ‘grant select on produktiv.’ || table_name || ‘ to odbc_role;’
    from dba_tables where owner = ‘PRODUKTIV’;
    grant odbc_role to odbc;
    spool off
    exit;

    Die entstandene Datei editieren und die ersten (den Befehl) und die letzte Zeile entfernen (“spool off”). Anschließend ablaufen lassen mit “@./grant_odbc_ro.sql”.

    Wir haben nun nur ein anderes Problem: Um als Benutzer “odbc” auf die Tabellen des Schemas “produktiv” zugreifen zu können, muss man den Schema-Namen nun mit angeben. Gibt es eine Möglichkeit, dies zu umgehen?

    Gruß

    MiKe

  6. Stephan am 24. Oktober 2011

    Hallo MiKe,

    ich denke ich habe da eine Lösung.

    Vielleicht etwas spät für dich, aller die Lösung ist die Anlage eines Synonyms für deine Tabellen. Vorausgesetzt, du nutzt in deinem eigenen User “odbc” nicht die selben Tabellennamen.

    Wichtig hierbei ist, dass dein User Synonyms anlegen darf. Daher angemeldet als SYSDBA folgenden GRANT für den User “odbc” vergeben:

    GRANT CREATE SYNONYM TO ODBC;

    Hier ein Beispiel für ein SYNONYM:

    CREATE SYNONYM testtabelle FOR PRODUKTIV.testtabelle;

    Hoffe das hilft dir oder anderen hier…

Ihr Kommentar wird gerade übertragen.

Über mich

Profile Näheres zu meiner Person findet Ihr unter Der Autor

Suche

Zahlendreherei

  • 614 Artikel
  • 1,107 Kommentare.

Blog-Verzeichnisse

  • blogoscoop
  • Blog Top Liste - by TopBlogs.de

Meine tägliche Lektüre

  • all-IT
  • Caschys Blog
  • Datenhalter-Blog
  • DimidoBlog
  • dopefreshtightblog
  • EDV – Ende der Vernunft
  • Freeware-Blog
  • Glorf.It-Blog
  • GoogleWatchBlog
  • Prometeo
  • Sebastian Constapel
  • Software-Guide Weblog
  • t3n News
  • Tobbi’s Blog
  • Tuxpost Blog
  • Webtagebu.ch
  • Webthreads

Seiten

  • Der Autor
  • Tag Wolke
  • Viren-Info
  • Datenschutz
  • Kontakt
  • Impressum

    Kategorien

    • .Net (23)
    • Allgemein (131)
    • Apple (34)
    • Bücher (44)
    • Business (29)
    • Datenbank (30)
    • Fußball WM (9)
    • Fun (77)
    • Hardware (33)
    • iPhone (3)
    • Java (56)
    • Linux (51)
    • Programme (81)
    • Programmierung (142)
    • Security (26)
    • SOA (12)
    • Suchmaschinen (27)
    • Virtualisierung (11)
    • Web-Themen (46)
    • Webhosting (32)
    • Websites (7)
    • Windows (95)

    Archiv

    • März 2012 (1)
    • Februar 2012 (4)
    • November 2011 (1)
    • Oktober 2011 (4)
    • Mai 2010 (5)
    • April 2010 (2)
    • März 2010 (1)
    • Februar 2010 (1)
    • Januar 2010 (6)
    • Dezember 2009 (4)
    • Oktober 2009 (1)
    • September 2009 (2)
    • August 2009 (7)
    • Juni 2009 (2)
    • Mai 2009 (3)
    • April 2009 (2)
    • März 2009 (2)
    • Februar 2009 (4)
    • Januar 2009 (4)
    • Dezember 2008 (2)
    • November 2008 (1)
    • Oktober 2008 (5)
    • August 2008 (3)
    • Juli 2008 (6)
    • Juni 2008 (6)
    • Mai 2008 (9)
    • April 2008 (9)
    • März 2008 (6)
    • Februar 2008 (5)
    • Januar 2008 (13)
    • Dezember 2007 (11)
    • November 2007 (8)
    • Oktober 2007 (12)
    • September 2007 (10)
    • August 2007 (14)
    • Juli 2007 (13)
    • Juni 2007 (23)
    • Mai 2007 (20)
    • April 2007 (16)
    • März 2007 (13)
    • Februar 2007 (14)
    • Januar 2007 (35)
    • Dezember 2006 (24)
    • November 2006 (26)
    • Oktober 2006 (26)
    • September 2006 (25)
    • August 2006 (24)
    • Juli 2006 (23)
    • Juni 2006 (29)
    • Mai 2006 (24)
    • April 2006 (23)
    • März 2006 (18)
    • Februar 2006 (16)
    • Januar 2006 (28)
    • Dezember 2005 (12)

    Tag-Wolke

    administration Apple barcamp blogsoftware Business Bücher Datenbank ebook eclipse Fun google Hardware iPhone ipod Java knowhow Linux microsoft musik networking netzwerk notebook nürnberg opensource oracle ruby ruby on rails Security server shell SOA software softwareentwicklung suchmaschine tipps und tricks tools ubuntu video Virtualisierung vista web2.0 webanwendung webdesign Windows wordpress

    WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.

Copyright © 2022 Der Informatik Student
Blog-Design by Stephen Reinhardt | Modified for Theme Corp