Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ORA-01720 beim Berechtigen für eine View

2,221 views
Skip to first unread message

Michael Hermes

unread,
Aug 24, 2009, 4:47:38 AM8/24/09
to
Guten Tag,

ich habe folgendes Konstrukt (vereinfacht):

User a mit Tabelle taba: a.taba
User b mit Tabelle tabb: b.tabb

User a hat
grant select on b.tabb to a;

User a mit einer View v_test die aus beiden Tabellen selektiert:

create view a.v_test as
(select tabb.felder, taba.felder
from a.tabb, b.taba
where tabb.id=taba.id);

Das klappt soweit.

Nun will ich einer komplett anderen Rolle (role_z) select auf die View
geben:

Als a angemeldet:
grant select on a.taba to role_z;
Als b angemeldet:
grant select on b.tabb to role_z;

Das klappt auch. Danach kann ich auch als User der role_z hat das
Select der View erfolgreich ausf�hren.

Wenn ich dann allerdings (als a angemeldet) ein
grant select on a.v_test to role_z;
mache, kommt die Fehlermeldung
ORA-01720: Berechtigungsoption f�r 'b.tabb' nicht vorhanden

Irgendwer eine Idee, wie ich das l�sen kann? Ich vermute mal irgendwo muss
ich den
Durchgriff auf die verschiedenen Schema-Owner noch erlauben.

Google brachte nur, da� ich die zugrundelegenden Objekte berechtigen muss.
Da ich den zugrundeliegenden select aber ausf�hren kann, sollten die
Berechtigungen doch existieren.

Gruss / Danke


Dominik Echterbruch

unread,
Aug 24, 2009, 5:02:25 AM8/24/09
to
Michael Hermes wrote:
>
> User a hat
> grant select on b.tabb to a;
>
> Als a angemeldet:
> grant select on a.taba to role_z;
> Als b angemeldet:
> grant select on b.tabb to role_z;
>
> Das klappt auch. Danach kann ich auch als User der role_z hat das
> Select der View erfolgreich ausf�hren.
>
> Wenn ich dann allerdings (als a angemeldet) ein
> grant select on a.v_test to role_z;
> mache, kommt die Fehlermeldung
> ORA-01720: Berechtigungsoption f�r 'b.tabb' nicht vorhanden
>
> Google brachte nur, da� ich die zugrundelegenden Objekte berechtigen muss.
> Da ich den zugrundeliegenden select aber ausf�hren kann, sollten die
> Berechtigungen doch existieren.

Ich bin jetzt nicht gerade Oracle-Profi, aber wenn ich das richtig
verstehe, hat Benutzer a aufgrund der vergebenen Berechtigungen nur das
Recht, aus tabb zu selektieren. Ihm fehlt aber das Recht, das
Selektierungsrecht weiter zu geben. Also etwas �hnliches wie das (keine
Ahnung, ob das wirklich so hei�t:
grant grant on b.tabb to a;

Vielleicht hilft's.

Gr��e,
Dominik
--
Wo k�men wir hin, wenn alle sagten, wo k�men wir hin, und niemand
ginge, um einmal zu schauen, wohin man k�me, wenn man ginge.
Autor: Kurt Marti (http://de.wikiquote.org/wiki/Kurt_Marti)

Bernd Eckenfels

unread,
Aug 24, 2009, 5:28:34 AM8/24/09
to
Dominik Echterbruch <new...@crosslight.de> wrote:
> grant grant on b.tabb to a;

Die admin option heisst das bei Oracle, aber das wᅵre ja blᅵd wenn man die
hierfᅵr brᅵuchte.

Gruss
Bernd

Peter Kallweit

unread,
Aug 24, 2009, 5:28:34 AM8/24/09
to


Hallo Michael,

grant select on b.tabb to a with grant option;

ist dein Freund.


Ciao,
Peter

Dominik Echterbruch

unread,
Aug 24, 2009, 6:12:05 AM8/24/09
to
F�r's Protokoll:

Vielen Dank, das war der wichtige Hinweis.

Ich brauchte noch
Als b anmelden
Grant select on b.tabb to a with grant option;

Und dann geht es.

Gruss / Danke

Dominik Echterbruch

unread,
Aug 24, 2009, 6:14:40 AM8/24/09
to

Wieso wᅵre das blᅵd? Klar, dass man nicht unbedingt sofort mit
Adminrechten danach schieᅵen sollte, ist klar. Aber warum soll denn
Oracle etwas tun, was du nicht explizit erlaubt hast?

Du hast halt nunmal nur das Recht bekommen, Daten aus der Tabelle
auszulesen. Ergo darfst du nicht schreiben, die Tabelle nicht verᅵndern
usw. Und das ist gut so. Warum also solltest du plᅵtzlich Berechtigungen
auf die Tabelle vergeben dᅵrfen, bloᅵ weil du lesen darfst?

Grᅵᅵe,
Dominik
--
Wo kᅵmen wir hin, wenn alle sagten, wo kᅵmen wir hin, und niemand
ginge, um einmal zu schauen, wohin man kᅵme, wenn man ginge.

Bernd Eckenfels

unread,
Aug 24, 2009, 6:48:53 AM8/24/09
to
Dominik Echterbruch <new...@crosslight.de> wrote:
> Du hast halt nunmal nur das Recht bekommen, Daten aus der Tabelle
> auszulesen. Ergo darfst du nicht schreiben, die Tabelle nicht verᅵndern
> usw. Und das ist gut so. Warum also solltest du plᅵtzlich Berechtigungen
> auf die Tabelle vergeben dᅵrfen, bloᅵ weil du lesen darfst?

Aehm, ich glaube du hast mich falsch verstanden: es wᅵre bloed einem nutzer
die admin option fᅵr das leserecht geben zu muessen nur damit dieser (via
View) lesen kann.

Gruss
Bernd

0 new messages