Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Tabellenzugriff eines anderen Benutzers

Dieses Thema im Forum "Oracle" wurde erstellt von cece90, 17 Januar 2015.

  1. cece90

    cece90 Benutzer

    Hallo,
    ich habe gerade ein Verständnisproblem, was den benutzerübergreifenden Zugriff auf Tabellen angeht und wäre wirklich froh, wenn ihr mir helfen könnten.

    Ich arbeite mit dem Oracle SQL Developer und habe mit einem Benutzer (Hans) mehrere Tabellen angelegt. Nun habe ich einem zweiten Benutzer (Thorsten), während ich noch als Hans angemeldet war, per

    grant select, insert, update, delete on adressen to thorsten;

    dem Benutzer Thorsten Rechte zugewiesen, damit dieser die Tabelle "adressen" einsehen, ändern etc. darf.
    Eigentlich bin ich nun davon ausgegangen, dass wenn ich mich als Thorsten im Oracle SQL Developer anmelde, links oben in dem Verbindungsfenster unter "Tabellen" auch die gerade zugewiesene Tabelle angezeigt wird - dies ist aber nicht der Fall.

    Habe ich nun einen Fehler beim Zuweisen der Rechte gemacht, oder ist dies so gar nicht möglich, wie ich es mir gedacht habe?

    Vielen Dank für eure Hilfe schonmal!
     
  2. Distrilec

    Distrilec Datenbank-Guru

    Ich arbeite nicht mit dem Oracle SQL Developer... Aber generell ist es eher so das unter so einem Reiter nur die EIGENEN Tabellen angezeigt werden.

    Selektieren darf der User Thorsten von den Tabellen von Hans trotzdem.

    Probier einfach mal mit dem User Thorsten eine Tabelle abzufragen:
    Code:
    Select *
    From   Hans.Tabelle_Von_Hans;
     
  3. cece90

    cece90 Benutzer

    Vielen Dank für deine schnelle Antwort. Du hast Recht, damit funktioniert der Zugriff!
    Der direkte Zugriff scheint ja leider dann nur über Synonyme zu machen sein. Dort fehlt dann aber wiederum die Möglichkeit, diese einer Benutzerrolle zuzuweisen. Stimmt das so, oder mache ich da einen Denkfehler?
     
  4. Distrilec

    Distrilec Datenbank-Guru

    Was genau meinst du mit Synonymen ? Du musst bei Tabellen die einem anderen Schema entspringen auch das Schema angeben... Das sollte aber eig. klar sein :)
     
  5. cece90

    cece90 Benutzer

    Das mit den Synonymen habe ich hierher (5. Post).
    Irgendwie verstehe ich das scheinbar leider noch nicht so ganz. Hans ist doch der Benutzer und nicht das Schema??? :confused:
    Kann ich nicht Benutzerübergreifend alle ohne "Hans." auf das Schema zugreifen lassen. Wenn nötig kann ich die Tabellen auch über "sys" erstellen, oder macht das keinen Unterschied?
    Vielen Dank für deine Geduld ;)
     
  6. Distrilec

    Distrilec Datenbank-Guru

    Achso... Nein entschuldige.

    1. Ein Schema ist ein User oder eine Rolle.
    2. Ein Schema wird mit angegeben, damit man eine Tabelle eindeutig referenziert. Es ist auch möglich das verschiedene User eine Tabelle mit dem selben Namen erstellen.
    3. Wenn du ein Synonym für Thorsten erstellst sollte das Problem behoben sein :)
    Code:
    Create Synonym Thorsten.Tabelle_Von_Hans For Hans.Tabelle_Von_Hans;
    Damit sollte Thorsten auch kein Schema mehr angeben müssen :)


    Edit:

    Wie in deinem Link auch schön beschrieben wird, gibt es auch Public Synonyms... Solltest du mehr Benutzer einstellen wollen :)
    (Vorausgesetzt du hast Administrationsrechte)
     
  7. cece90

    cece90 Benutzer

    Okay, super dann habe ich jetzt glaube ich alles verstanden! Vielen Dank für deine wirklich sehr schnelle Hilfe!:)
    Kannst du mir denn noch sagen, wie das idR in der Praxis gehandhabt wird? Ich hätte jetzt nämlich gedacht, dass es von einem User mit "sysdba"-Rechten o.ä. ein Schema mit den Tabellen angelegt wird und alle Benutzer können auf die Tabellen (sofern ihnen die Rechte zugewiesen wurden) zugreifen, ohne den Benutzer, der die Tabellen angelegt hat davor zu schreiben (und ohne, dass jedem einzelnen Benutzer ein Synonym zugewiesen wurde).
    Irgendwie scheint mir das so kompliziert.
     
  8. Distrilec

    Distrilec Datenbank-Guru

    In der Praxis ist es so das die Anwender meistens garnicht wissen wo und wie die Daten gespeichert sind... Denn es sollte IMMER ein Front-End zwischen Datenbank und User stehen :)
    Die einzigen Personen die direkt mit der Datenbank zutun haben sind entweder DBAs oder SQL Entwickler ;)
     
  9. cece90

    cece90 Benutzer

    Okay, das stimmt wohl. ;) Vielen Dank nochmal für deine Hilfe und einen schönen Abend noch :)
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden