Link auf ein Schema erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Link auf ein Schema erstellen

    Hallo,

    ich habe ein Problem mit einer Oracle Datenbank. Ich habe einen Nutzer der lesend auf eine Datenbank zugreifen soll. Von unserem Datenbankadmin habe ich diesen Nutzer als Synonym eingerichtet bekommen. Das heist alle Daten des Hauptnutzers liegen und Synonym. Das Programm welches lesend auf die Datenzugreifen soll erwartet aber die Daten unter Table. Leider bin ich nicht wirklich fit was Oracle Datenbanken angeht. Könnten ihr mir verraten wie ich eine Art "Link" auf das Synonym bekomme so das die Daten unter Table angezeigt werden.

    Danke für eurer Hilfe
    Sebastian
  • Am einfachsten wäre es wohl, dein Administrator benennt entweder den Datenbank-Nutzer oder dessen Default-Schema um, oder er legt ein weiteres Schema table an, das diesem gehört.
    Vielleicht hast du ja auch die Rechte um selbst ein Schema anlegen zu können, wobei ich das allerdings nicht erwarten würde.

    Wenn dein Programm ein Schema table verlangt und du das auch nicht ändern kannst, muss es in der Datenbank auch vorhanden sein. Ein Link wie bei Dateien gibt es meines Wissens nicht.

    Gruß,
    Paul
  • Hm, aber wenn der Admin dem Nutzer nur Leserechte eingeräumt hat, kann er die Daten gar nicht ändern. Du schreibst

    Munsi1 schrieb:


    Ich habe einen Nutzer der lesend auf eine Datenbank zugreifen soll.

    und weiter

    Munsi1 schrieb:


    Das Programm welches lesend auf die Datenzugreifen soll ..

    Wer von beiden ändert denn die Daten? Vielleicht kannst du nochmal genau beschreiben, was du vorhast.

    Ansonsten helfen dir evtl. Views weiter. Damit kannst du für jede Tabelle eine Art Link anlegen. Aber auch hier muß mindestens das Schema table existieren.

    Quellcode

    1. CREATE VIEW table.tabelle1 AS SELECT * FROM sysnonym.tabelle1;

    Obwohl das eigentlich nicht nötig sein sollte, wenn die Rechte richtig vergeben wurden.

    Gruß,
    Paul
  • Okay ich versuche es nochmal zu erklären.
    für das Programm gibt es einen Datenbanknutzer der in die Datenbank schreiben darf. Jetzt möchte ich aber einen Nutzer der nur leserechte hat das er die gleichen Daten lesen kann. Nutzer A hat schreibrechte und hat alle Daten unter Table. Nutzer B hat leserechte aber die Daten liegen nicht unter table sondern unter synonym. Das Programm erwartet die Daten aber unter table.
    Sorry wenn ich mich blöd ausgrdrückt habe aber mit Datenbanken habe ich nicht wirklich viel am Hut.

    Danke für die Hilfe
    Sebastain
  • Folgendes gilt nur für Oracle:


    Beispiel:

    Quellcode

    1. create view Name as (select * from Tabelle) with check option


    Du kannst auf alles Mögliche eine Sichtweise erstellen (auch Tabellenverbunde) dort darf eine beliebige Projektion stehen. Allerdings solltest du zusehen, dass da auch nur lesene Zugriffe drauf stattfinden, das Ergebnis ist ansonsten nicht immer einleuchtend (meistens gibts ein Fehler). Du kannst für Views ebenfalls Berechtigungen vergeben. Das with check option ist in diesem Fall nicht notwendig, aber es stört nicht und es wird wichtig, wenn du eine where-Bedingung in das Statement einführst. Du kannst auf eine View lesend ganz normal zugreifen als wäre es eine Tabelle (select * fom view-name where blubb...)
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]