Tabellenzugriff eines anderen Benutzers

cece90

Benutzer
Beiträge
9
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!
 
Werbung:
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;
 
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?
 
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?
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 :)
 
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 ;)
 
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)
 
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.
 
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 ;)
 
Werbung:
Zurück
Oben