Häufig gestellte Frage (FAQ)

Kann der Rolle public die Ausführungsberechtigung für Oracle-Pakete entzogen werden?

Last Published: April 25, 2020

Ja, es ist möglich, der Oracle-Rolle "public" die Ausführungsberechtigung für folgende Pakete zu entziehen, nachdem eine Geodatabase in Oracle erstellt oder aktualisiert wurde:

  • sys.dbms_lock
  • sys.dbms_pipe
  • sys.dbms_lob
  • sys.dbms_sql
  • sys.dbms_utility
  • sys.utl_raw

Wenn die Berechtigung widerrufen wird, muss der Oracle-Administrator dem SDE- und CTXSYS-Benutzer (Eigentümer der Oracle Text-Komponente) sowie allen Benutzern, die sich über ArcGIS mit der Oracle-Instanz verbinden, ausdrücklich Ausführungsberechtigungen für alle Pakete gewähren.

Wenn Sie der Rolle "public" die Berechtigungen für die Pakete entziehen möchten, führen Sie als Oracle SYS-Benutzer folgende SQL-Anweisungen in SQL*Plus aus:

SQL> REVOKE EXECUTE ON dbms_lock FROM public;

Revoke succeeded.

SQL> REVOKE EXECUTE ON dbms_pipe FROM public;

Revoke succeeded.

SQL> REVOKE EXECUTE ON dbms_lob FROM public;

Revoke succeeded.

SQL> REVOKE EXECUTE ON dbms_sql FROM public;

Revoke succeeded.

SQL> REVOKE EXECUTE ON dbms_utility FROM public;

Revoke succeeded.

SQL> REVOKE EXECUTE ON utl_raw FROM public;

Revoke succeeded.

Wenn der Rolle "public" die Berechtigungen entzogen wurden, muss der SYS-Benutzer dem SDE- und CTXSYS-Benutzer Ausführungsberechtigungen für die Pakete gewähren.

SQL> GRANT EXECUTE ON dbms_lock TO sde;

Grant succeeded.

SQL> GRANT EXECUTE ON dbms_pipe TO sde;

Grant succeeded.

SQL> GRANT EXECUTE ON dbms_lob TO sde;

Grant succeeded.

SQL> GRANT EXECUTE ON dbms_sql TO sde;

Grant succeeded.

SQL> GRANT EXECUTE ON dbms_utility TO sde;

Grant succeeded.

SQL> GRANT EXECUTE ON utl_raw TO sde;

Grant succeeded.

SQL> GRANT EXECUTE ON dbms_lock TO ctxsys; 

Grant succeeded. 

SQL> GRANT EXECUTE ON dbms_pipe TO ctxsys; 

Grant succeeded. 

SQL> GRANT EXECUTE ON dbms_lob TO ctxsys; 

Grant succeeded. 

SQL> GRANT EXECUTE ON dbms_sql TO ctxsys; 

Grant succeeded. 

SQL> GRANT EXECUTE ON dbms_utility TO ctxsys; 

Grant succeeded. 

SQL> GRANT EXECUTE ON utl_raw TO ctxsys; 

Grant succeeded.

Wenn der SDE-Benutzer keine ausdrückliche Berechtigung für die Ausführung des Pakets "sys.dbms_pipe" hat, tritt beim Starten des ArcSDE-Service ein Fehler auf, und in das ArcSDE-Fehlerprotokoll wird die folgende Meldung geschrieben:

Error:
SQL Stmt: 

Dem Benutzer der SDE DBA muss die Berechtigung für die Ausführung des erforderlichen in Oracle integrierten Pakets "DBMS_PIPE" direkt gewährt werden; es reicht nicht aus, wenn ihm lediglich eine Rolle mit der Ausführungsberechtigung zugewiesen wird.

Damit sich einzelne Benutzer entweder über den ArcSDE-Anwendungsserver oder direkt mit der Geodatabase verbinden können, muss ihnen der SYS-Benutzer die Berechtigung für diese Pakete ausdrücklich gewähren. Verbinden Sie sich erneut über SQL*Plus als SYS-Benutzer, und gewähren Sie dem gewünschten Benutzer die Berechtigung für die Ausführung der einzelnen Pakete.

SQL> GRANT EXECUTE ON dbms_lock TO tom;

Grant succeeded.

SQL> GRANT execute ON dbms_pipe TO tom;

Grant succeeded.

SQL> GRANT EXECUTE ON dbms_lob TO tom;

Grant succeeded.
SQL> GRANT EXECUTE ON dbms_sql TO tom;

Grant succeeded.
SQL> GRANT EXECUTE ON dbms_utility TO tom;

Grant succeeded.
SQL> GRANT EXECUTE ON utl_raw TO tom;

Grant succeeded.

Wiederholen Sie diese Befehle für jeden Benutzer, der eine Verbindung mit der Geodatabase herstellen können soll.

Hinweis:
Es ist nicht möglich, einer Datenbankrolle die Berechtigung für die Ausführung dieser Pakete zu gewähren und anschließend einem Benutzer diese Rolle zuzuweisen. In Abhängigkeit von diesen Oracle-Paketen hat SDE eigene Pakete; daher gelten Berechtigungen, die über Rollen gewährt wurden, nicht für die Ausführung von in Oracle gespeicherten Prozeduren oder Paketen. Nähere Informationen hierzu finden Sie in der Oracle-Dokumentation.

Wenn Sie den einzelnen Benutzern Ausführungsberechtigungen für die Pakete gewährt haben, müssen Sie das SDE- und CTXSYS-Objekt neu kompilieren. Verbinden Sie sich in SQL*Plus als SYS-Benutzer, und kompilieren Sie das SDE- und CTXSYS-Schema.

SQL> EXEC dbms_utility.compile_schema( 'SDE' );

Die PL/SQL-Prozedur wurde erfolgreich abgeschlossen.

SQL> EXEC dbms_utility.compile_schema( 'CTXSYS' );

Die PL/SQL-Prozedur wurde erfolgreich abgeschlossen.

Artikel-ID: 000010238

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln