PL/SQL-Packagehinweise für Autonomous Database

Hinweise für Oracle Database-PL/SQL-Packages in Autonomous Database.

Nicht verfügbare PL/SQL-Packages

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

DBMS_LDAP PL/SQL-Packagehinweise

Enthält Notizen für das Package DBMS_LDAP:

  • Das Angeben einer IP-Adresse im Hostnamen ist nicht zulässig.

  • Der einzige zulässige Port ist 636.

  • Die Argumente SSLWRL und SSLWALLETPASSWD für die Prozedur OPEN_SSL werden ignoriert. Der Standardwert für die Eigenschaft SSLWRL ist auf das Wallet gesetzt, das von UTL_HTTP und DBMS_CLOUD zum Erstellen ausgehender Webanforderungen in Autonomous Database verwendet wird.

  • Die Unterprogramme DBMS_LDAP.SIMPLE_BIND_S und DBMS_LDAP.BIND_S führen die Authentifizierung beim Directory-Server aus.

    Die Unterprogramme DBMS_LDAP.SIMPLE_BIND_S und DBMS_LDAP.BIND_S werden so geändert, dass Zugangsdatenobjekte als Argument akzeptiert werden.

    Verwendungshinweise und Beispiele für diese geänderten Unterprogramme:

    • Mit den geänderten Unterprogrammen SIMPLE_BIND_S und BIND_S können Sie Zugangsdatenobjekte übergeben, um die Directory-Server-Authentifizierung festzulegen. Zugangsdatenobjekte sind Schemaobjekte. Daher können nur berechtigte Benutzer auf sie zugreifen und Sie können Berechtigungen auf Schemaebene konfigurieren, um Zugriff auf die Zugangsdaten zu kontrollieren. Das Übergeben von Scheduler-Zugangsdaten ist eine geeignete und sichere Möglichkeit, Benutzername/Kennwort/Schlüssel für die Authentifizierung zu speichern und zu verwalten.

    • Die geänderten Unterprogramme SIMPLE_BIND_S und BIND_S sind eine sichere und praktische Alternative zu den zuvor vorhandenen Unterprogrammen SIMPLE_BIND_S und BIND_S.

      Weitere Informationen finden Sie unter FUNCTION simple_bind_s und FUNCTION bind_s.

    • Das Argument CREDENTIAL der Funktionen SIMPLE_BIND_S und BIND_S wird verwendet, um die Zugangsdaten-basierte Authentifizierung beim Directory-Server auszuführen.

    • Beispiel:
      • Zugangsdatenobjekt erstellen:

        BEGIN DBMS_CLOUD.CREATE_CREDENTIAL (
            credential_name => 'LDAP_CRED',
            username        => 'web_app_user',
            password        => 'password' );
        END;

        Dadurch wird ein Zugangsdatenobjekt erstellt, das ein gespeichertes Benutzername/Kennwort-Paar erstellt.

        Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL.

        Weitere Informationen finden Sie unter Zugangsdaten für Scheduler-Jobs angeben.

      • Rufen Sie DBMS_LDAP.SIMPLE_BIND_S auf:

        DECLARE
              l_mail_conn DBMS_LDAP.INIT;
            BEGIN 
              l_ldap_conn   := DBMS_LDAP.INIT('ldap.example.com', 636);
              l_auth_result := DBMS_LDAP.SIMPLE_BIND_S(l_ldap_conn, 'LDAP_CRED');
              ...
        END;
        

        Der Code in diesem Beispiel ruft zuerst die Funktion DBMS_LDAP.INIT auf, die eine Session mit einem LDAP-Server initialisiert und eine Verbindung zum LDAP-Server ldap.example.com an Portnummer 636 herstellt. Der Wert l_ldap_conn in der Funktion SIMPLE_BIND_S ist das LDAP-Session-Handle, und LDAP_CRED ist der Zugangsdatenname.

      • Die function bind_s führt eine komplexe Authentifizierung beim Directory-Server aus. Beispiel:

        DECLARE
              l_mail_conn DBMS_LDAP.INIT;
            BEGIN 
              l_ldap_conn   := DBMS_LDAP.INIT('ldap.example.com', 636);
              l_auth_result := DBMS_LDAP.BIND_S(l_ldap_conn, 'LDAP_CRED', METH => DBMS_LDAP.AUTH_SIMPLE);
              ...
        END;
        

        Der Code in diesem Beispiel ruft zuerst die Funktion DBMS_LDAP.INIT auf, die eine Session mit einem LDAP-Server initialisiert und eine Verbindung zum LDAP-Server ldap.example.com an Portnummer 636 herstellt. Der Wert l_ldap_conn in der Funktion BIND_S ist das LDAP-Session-Handle, und LDAP_CRED ist der Zugangsdatenname. METH ist die Authentifizierungsmethode. Der einzig gültige Wert ist DBMS_LDAP_UTL.AUTH_SIMPLE.

    • Die EXECUTE-Berechtigungen für DBMS_CLOUD oder DWROLE sind erforderlich, um Scheduler-Zugangsdaten zu erstellen.

    • Die übergebenen Zugangsdaten müssen im aktuellen Schema vorhanden sein oder ein Synonym aufweisen, das auf Zugangsdaten im Schema verweist, und den Status "Aktiviert" aufweisen.

    • Ein öffentliches oder privates Synonym, das auf Zugangsdaten in einem anderen Benutzerschema verweist, kann als Wert für den Parameter CREDENTIAL angegeben werden, vorausgesetzt, Sie verfügen über die Berechtigung EXECUTE für das Basiszugangsdatenobjekt, auf das das Synonym verweist. Weitere Informationen finden Sie unter Überblick über Synonyme.

  • SSL/TLS wird für die gesamte Kommunikation zwischen LDAP-Server und Autonomous Database durchgesetzt.

  • Wenn Ihre Autonomous Database-Instanz mit einem privaten Endpunkt konfiguriert ist, setzen Sie den Datenbankparameter ROUTE_OUTBOUND_CONNECTIONS auf "PRIVATE_ENDPOINT", um anzugeben, dass alle ausgehenden LDAP-Verbindungen den Egress-Regeln des privaten Endpunkt-VCN der Autonomous Database-Instanz unterliegen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

  • Um DBMS_LDAP für eine Verbindung auf einem privaten Endpunkt zu verwenden, verwenden Sie DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE, und geben Sie den Parameter private_target mit dem Wert TRUE an.

    Hinweis

    Wenn Sie ROUTE_OUTBOUND_CONNECTIONS auf PRIVATE_ENDPOINT setzen, ist das Festlegen des Parameters private_target auf TRUE in dieser API nicht erforderlich. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.
  • DBMS_LDAP Fehler

    Fehlermeldung Potenzielle Ursache

    ORA-31400: Missing or invalid scheduler credential

    Übergebene Zugangsdaten sind NULL oder ungültig.

Weitere Informationen finden Sie unter DBMS_LDAP in der PL/SQL-Packages and Types-Referenz.

DBMS_NETWORK_ACL_ADMIN PL/SQL-Packagehinweise

Enthält Notizen für das Package DBMS_NETWORK_ACL_ADMIN:

  • Das Erteilen von ACL-Berechtigungen für IP-Adressen ist nicht zulässig.

  • Die ACL HTTP_PROXY ist für private Endpunkte zulässig.

Weitere Informationen finden Sie unter DBMS_NETWORK_ACL_ADMIN in der PL/SQL-Packages and Types-Referenz.

DBMS_SCHEDULER Packagehinweise

Stellt Notizen für das Package DBMS_SCHEDULER bereit.

In Autonomous Database unterstützt die Prozedur DBMS_SCHEDULER.CREATE_JOB die Jobtypen PLSQL_BLOCK und STORED_PROCEDURE für den Parameter job_type.

Wenn Sie eine nicht unterstützte job_type verwenden, werden möglicherweise Meldungen wie die folgenden angezeigt:

ORA-27399: job type EXECUTABLE requires the CREATE EXTERNAL JOB privilege
ORA-27369: JOB OF TYPE EXECUTABLE FAILED WITH EXIT CODE: OPERATION NOT PERMITTED

Weitere Informationen finden Sie unter Vordefinierte Jobklassen mit Oracle Scheduler und DBMS_SCHEDULER.

UTL_HTTP PL/SQL-Packagehinweise

Enthält Notizen für das Package UTL_HTTP:

  • Verbindungen über IP-Adressen sind nicht zulässig.

  • Nur HTTPS ist zulässig, wenn sich die Autonomous Database-Instanz auf einem öffentlichen Endpunkt befindet. Wenn sich die Autonomous Database-Instanz auf einem privaten Endpunkt befindet, sind sowohl HTTPS- als auch HTTP_PROXY-Verbindungen zulässig (HTTP-Verbindungen sind sowohl für öffentliche als auch für private Endpunkte nicht zulässig).

  • Die UTL_HTTP.set_proxy-API ist zulässig, wenn sich die Autonomous Database-Instanz auf einem privaten Endpunkt befindet.

  • Wenn sich die Autonomous Database-Instanz auf einem privaten Endpunkt befindet und Sie HTTP_PROXY oder die UTL_HTTP.SET_PROXY-API verwenden:

    • Bei DBMS_CLOUD-Anforderungen wird der Proxyserver, den Sie mit UTL_HTTP.SET_PROXY festgelegt haben, nicht berücksichtigt. Dazu gehören DBMS_CLOUD.SEND_REQUEST und der gesamte Objektspeicherzugriff für externe DBMS_CLOUD-Tabellen, die Sie mit DBMS_CLOUD.CREATE_EXTERNAL_TABLE, DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE oder DBMS_CLOUD.CREATE_HYBRID_PART_TABLE definieren.

    • Bei APEX_WEB_SERVICE-Anforderungen wird der Proxyserver, den Sie mit UTL_HTTP.SET_PROXY festgelegt haben, nicht berücksichtigt.

  • Alle Webservices müssen gesichert werden. Der einzige zulässige Port ist 443, wenn sich die Autonomous Database-Instanz auf einem öffentlichen Endpunkt befindet. Wenn sich die Autonomous Database-Instanz auf einem privaten Endpunkt befindet, gilt diese Einschränkung nicht.

    Ihre Autonomous Database-Instanz ist mit einem Oracle Wallet vorkonfiguriert, das mehr als 90 der am häufigsten vertrauenswürdigsten Root- und Zwischen-SSL-Zertifikate enthält. Oracle Wallet wird zentral verwaltet. Sie können UTL_HTTP so konfigurieren, dass ein Wallet für eine Site verwendet wird, die mit selbstsignierten SSL-Zertifikaten geschützt ist. Weitere Informationen finden Sie unter Von Kunden verwaltetes Wallet für externe Aufrufe mit UTL_HTTP verwenden.

  • Die Prozedur SET_AUTHENTICATION_FROM_WALLET ist nicht zulässig.

  • Die Argumente WALLET_PATH und WALLET_PASSWORD für die Prozeduren CREATE_REQUEST_CONTEXT, REQUEST und REQUEST_PIECES werden ignoriert.

  • Das Argument CREDENTIAL der Prozedur SET_CREDENTIAL wird verwendet, um das Zugangsdatenobjekt als Eingabe an die Prozedur zu übergeben. Weitere Informationen finden Sie unter Zugangsdaten für Scheduler-Jobs angeben und Prozedur CREATE_CREDENTIAL.

  • Die EXECUTE-Berechtigungen für DBMS_CLOUD oder DWROLE sind erforderlich, um Zugangsdatenobjekte zu erstellen.

  • Die übergebenen Zugangsdaten müssen im aktuellen Benutzerschema vorhanden sein und den Status "Aktiviert" aufweisen.

  • Ein öffentliches oder privates Synonym, das auf Zugangsdaten in einem anderen Benutzerschema verweist, kann als Wert für den Parameter CREDENTIAL angegeben werden, vorausgesetzt, Sie verfügen über die Berechtigung EXECUTE für das Basiszugangsdatenobjekt, auf das das Synonym verweist. Weitere Informationen finden Sie unter Überblick über Synonyme.

  • Oracle Wallet-Konfiguration kann nicht geändert werden. Alle Argumente für die Prozedur SET_WALLET werden ignoriert.

  • Wenn Ihre Autonomous Database-Instanz mit einem privaten Endpunkt konfiguriert ist, setzen Sie den Datenbankparameter ROUTE_OUTBOUND_CONNECTIONS auf "PRIVATE_ENDPOINT", um anzugeben, dass alle ausgehenden UTL_HTTP-Verbindungen den Egress-Regeln des VCN des privaten Endpunkts der Autonomous Database-Instanz unterliegen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

  • UTL_HTTP Fehler

    In der folgenden Tabelle werden Fehlermeldungen und mögliche Ursachen für diese Fehlermeldungen angezeigt, wenn UTL_HTTP verwendet wird:

    Fehlermeldung Potenzielle Ursache

    ORA-12545: Connect failed because target host or object does not exist

    Zielhost oder -objekt ist nicht vorhanden oder privat.

    ORA-24247: network access denied by access control list (ACL)

    Access Control-Liste (ACL) für den angegebenen Host konnte nicht gefunden werden.

    ORA-29024: Certificate validation failure

    Das Zertifikat des Hosts ist nicht vorhanden oder gehört nicht zu den unterstützten Zertifikaten.

    ORA-29261: Bad argument

    Übergebene Zugangsdaten sind ungültig oder deaktiviert, oder der Benutzer verfügt nicht über ausreichende Berechtigungen für die Zugangsdaten.

Weitere Informationen finden Sie unter UTL_HTTP in der PL/SQL-Packages and Types-Referenz.

UTL_INADDR PL/SQL-Packagehinweise

Enthält Notizen für das Package UTL_INADDR:

  • Das Package UTL_INADDR ist für die Verwendung auf einer Autonomous Database-Instanz mit einem privaten Endpunkt (PE) verfügbar.

  • Die Funktion GET_HOST_ADDRESS ist verfügbar.

  • Die Funktion GET_HOST_NAME ist nicht verfügbar.

Weitere Informationen finden Sie unter UTL_INADDR in der PL/SQL-Packages and Types-Referenz.

UTL_SMTP PL/SQL-Packagehinweise

Enthält Notizen für das Package UTL_SMTP:

  • Öffentliche SMTP-Endpunkte können verwendet werden, solange das Routing über den Kunden-Reverse Connection Endpunkt (RCE) erfolgt.

  • Mail mit einer IP-Adresse im Hostnamen ist nicht zulässig.

  • Die einzigen zulässigen Ports sind 25 und 587.

  • Das Argument CREDENTIAL der Funktion SET_CREDENTIAL wird verwendet, um das Zugangsdatenobjekt des Schedulers als Eingabe an die Funktion zu übergeben. Weitere Informationen finden Sie unter Zugangsdaten für Scheduler-Jobs angeben und Prozedur CREATE_CREDENTIAL.

  • Die EXECUTE-Berechtigungen für DBMS_CLOUD oder DWROLE sind erforderlich, um Zugangsdatenobjekte zu erstellen.

  • Das Argument CREDENTIAL der Prozedur SET_CREDENTIAL wird verwendet, um das Objekt der Zugangsdatenobjekte als Eingabe an die Prozedur zu übergeben. Weitere Informationen finden Sie unter Zugangsdaten für Scheduler-Jobs angeben.

  • Die übergebenen Zugangsdaten müssen im aktuellen Benutzerschema vorhanden sein und den Status "Aktiviert" aufweisen.

  • Ein öffentliches oder privates Synonym, das auf Zugangsdaten in einem anderen Benutzerschema verweist, kann als Wert für den Parameter CREDENTIAL angegeben werden, vorausgesetzt, Sie verfügen über die Berechtigung EXECUTE für das Basiszugangsdatenobjekt, auf das das Synonym verweist. Weitere Informationen finden Sie unter Überblick über Synonyme.

  • Wenn Ihre Autonomous Database-Instanz mit einem privaten Endpunkt konfiguriert ist, setzen Sie den Datenbankparameter ROUTE_OUTBOUND_CONNECTIONS auf "PRIVATE_ENDPOINT", um anzugeben, dass alle ausgehenden UTL_SMTP-Verbindungen den Egress-Regeln des VCN des privaten Endpunkts der Autonomous Database-Instanz unterliegen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

  • UTL_SMTP Fehler

    Fehlermeldung Potenzielle Ursache

    ORA-29261: Bad argument

    Übergebene Zugangsdaten sind ungültig oder deaktiviert, oder der Benutzer verfügt nicht über ausreichende Berechtigungen für die Zugangsdaten.

Weitere Informationen finden Sie unter UTL_SMTP in der PL/SQL-Packages and Types-Referenz.

UTL_TCP PL/SQL-Packagehinweise

Enthält Notizen für das Package UTL_TCP:

  • Die IP-Adresse ist im Hostnamen nicht zulässig.

  • Die einzigen zulässigen Ports sind: 443 (HTTP) 25 und 587 (SMTP).

  • Für Port 443 sind nur HTTPS-URLs zulässig.

  • Die Argumente WALLET_PATH und WALLET_PASSWORD für die Prozedur OPEN_CONNECTION werden ignoriert. Der Standardwert für die Eigenschaften WALLET_PATH und WALLET_PASSWORD wird auf das Wallet gesetzt, das von UTL_HTTP und DBMS_CLOUD zum Erstellen ausgehender Webanforderungen in Autonomous Database verwendet wird.

  • SSL/TLS wird für die gesamte Kommunikation über TCP/IP-Verbindungen durchgesetzt.

  • Wenn Ihre Autonomous Database-Instanz mit einem privaten Endpunkt konfiguriert ist, setzen Sie den Datenbankparameter ROUTE_OUTBOUND_CONNECTIONS auf "PRIVATE_ENDPOINT", um anzugeben, dass alle ausgehenden UTL_TCP-Verbindungen den Egress-Regeln des VCN des privaten Endpunkts der Autonomous Database-Instanz unterliegen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

Weitere Informationen finden Sie unter UTL_TCP in der PL/SQL-Packages and Types-Referenz.