Startseite > APEX 4 > Probleme beim Anlegen einer Websheet application

Probleme beim Anlegen einer Websheet application

Wenn Sie versuchen, im Application Builder über „Create“ -> „Websheet“ eine neue Application vom Typ „Websheet“ anzulegen, kann es zu folgender Fehlermeldung kommen:

The database objects required to create Websheet applications are either invalid or do not exist. Please contact your Workspace Administrator.

Ursache

Um ein Websheet erzeugen zu können, werden einige spezielle neue APEX Datenbank-Objekte benötigt.

Ob diese installiert sind, können Sie prüfen, indem Sie wenn o.g. Meldung angezeigt wird, auf „Manage Websheet Database Objects“ klicken und dann den Link „Validate Websheet Database Objects“ benutzen. Hier werden Ihnen nun die benötigten Websheet Objekte angezeigt. Die Spalte „Exists“ ist hierbei wichtig! Wird hier nun bei einigen Objekten „No“ angezeigt, fehlen wichtige Websheet Objekte und es kann kein Websheet erzeugt werden.

Leider hab ich bisher noch keine Möglichkeit gefunden, diese Objekte nachinstallieren zu können.

Lösung

APEX generiert die benötigten Objekte in das zugehörige DB-Schema, wenn ein neues Workspace angelegt wird!

VORSICHT!

Wenn Sie ein neues Workspace erzeugen und ein existierendes DB-Schema wiederverwenden (re-use=YES), dann bekommen Sie einen Fehler.

ORA-20001: table error:APEX$_WS_ROWS ORA-01031: insufficient privileges

Erzeugen Sie also ein neues Workspace und lassen Sie von APEX ein neues DB-Schema anlegen (re-use existing=NO). In diesem Falle werden alle benötigten Websheet Database Objekte automatisch im jeweiligen DB-Schema erzeugt.

Nun sollte das Anlegen einer Websheet Application einwandfrei funktionieren.

Prüfen Datenbank Objekte

Bevor Sie nun ein Websheet anlegen, können Sie noch prüfen, ob alle benötigten Datenbank Objekte vorhanden und validierbar sind.

  1. Melden Sie sich in Ihrem neuen Workspace an und klicken auf „Administration“.
  2. Klicken Sie nun in der rechten Sidebar „Tasks“ auf „Websheet Objects“ und dann auf „Validate Websheet Database Objects“.

In dieser tabellarischen Anzeige sollten nun alle Objekte als existierend und valide angezeigt werden.

  1. August 13, 2010 um 8:29 am

    Wenn beim Anlegen einer Websheet-Applikation die Fehlermeldung kommt, dass die notwendigen Tabellen nicht existieren, dann ist rechts ein Button „Manage Websheet Database Objects“.
    Klickt man diesen Button kommt man zu einem Link „Create Websheet Database Objects“, mit dem wird ein Wizard zum Anlegen der Objekte gestartet.

    Hab es zur Sicherheit gerade nochmals auf meinem Server getestet, funktioniert einwandfrei.

    Peter

    • August 13, 2010 um 10:10 am

      Hallo Peter,
      danke für den Tipp. Hab es gerade geprüft und du hast Recht. Ich weiß jedoch nun, wo mein Problem herkommt.
      Die Ursache liegt darin, dass ich ein DB-Schema von Hand angelegt habe. Über apex-admin habe ich dann ein neues Workspace angelegt und das DB-Schema angegeben (mit re-use…).
      Wenn ich hier nun das Workspace anlege, bekomme ich eine Fehlermeldung:

      ORA-20001: table error:APEX$_WS_ROWS ORA-01031: insufficient privileges
      Error provisioning test2_ws.

      Das blöde ist nun, dass mir das Workspace als „Existierend“ angezeigt wird. Wenn ich mich nun im Workspace anmelde, kann ich damit „eigentlich“ ganz normal arbeiten. Allerdings bekomme ich dann beim Versuch, eine Websheet Application anzulegen, genau die beschriebene Situation.
      Ich tippe mal, dass noch irgendein Skript über das DB-Schema laufen muss (ist nur die Frage welches???). Das werde ich noch nachliefern.

      Volker

  2. August 13, 2010 um 10:23 am

    Hallo Volker,

    da hast du „lediglich“ ein Privilegienproblem. Möglicherweise fehlen deinem Schema-User hier ein paar Privilegien (CREATE TABLE/VIEW/SEQUENCE/PROCEDURE…).

    Nicht vergessen, dass die Privilegien an den User direkte gegranted werden müssen und nicht über eine Rolle.

    Peter

    • August 13, 2010 um 11:08 am

      Hallo Peter,
      deine Vermutung war richtig. Ich hatte zum testen einfach nur die Rolle DBA zugewiesen und das reicht nicht aus.
      Lösung:
      Folgende Berechtigungen müssen dem DB-Schema-User explizit zugewiesen werden.

      grant CREATE SYNONYM to apex_test;
      grant CREATE SYNONYM to ;
      grant CREATE CLUSTER to ;
      grant CREATE INDEXTYPE to ;
      grant CREATE MATERIALIZED VIEW to ;
      grant CREATE VIEW to ;
      grant CREATE JOB to ;
      grant CREATE TABLE to ;
      grant CREATE TRIGGER to ;
      grant CREATE SESSION to ;
      grant CREATE PROCEDURE to ;
      grant CREATE TYPE to ;
      grant CREATE OPERATOR to ;
      grant CREATE SEQUENCE to ;
      grant CREATE DIMENSION to ;
      grant CREATE ANY CONTEXT to ;

      Wenn ich diese Berechtigungen zugewiesen habe, kann ich im Dialog „Websheet Database Objects“ die fehlenden Objekte anlegen.
      Achtung!
      Da das Workspace bereits angelegt wurde und auch ein paar wenige Websheet Objekte existieren, muss ich zuerst die existierende Websheet Objekte löschen (mit „Remove Websheet Database Objects“) und dann alle benötigten Objekte mit „Create Websheet Database Objects“ (dieser Link müsste nun auch angezeigt werden), neu erzeugen.
      Nun sollte alles funktionieren.

      Danke Peter!

      Volker

  3. Dietmar Aust
    September 26, 2010 um 6:21 pm

    Hallo Volker,

    bin auch gerade in den Fehler gelaufen😉

    Das Verfahren ist auch in den Release Notes dokumentiert:
    http://download.oracle.com/docs/cd/E17556_01/doc/relnotes.40/e15512/toc.htm#BABEHJGH

    soll die Security noch weiter erhöhen.

    Viele Grüße,
    Dietmar.

  1. No trackbacks yet.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: