Hinweise zum PL/SQL-Package für Autonomous Database

Hinweise zu Oracle Database-PL/SQL-Packages in Autonomous Database.

Nicht verfügbare PL/SQL-Packages

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

DBMS_LDAP Hinweise zum PL/SQL-Paket

Enthält Hinweise zum Package DBMS_LDAP:

  • Die Angabe 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. Als Standardwert für die Eigenschaft SSLWRL ist das Wallet festgelegt, das von UTL_HTTP und DBMS_CLOUD für ausgehende 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 geändert, um Zugangsdatenobjekte als Argument zu akzeptieren.

    Im Folgenden finden Sie die 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 privilegierte Benutzer auf sie zugreifen, und Sie können Berechtigungen auf Schemaebene konfigurieren, um auf die Zugangsdaten zuzugreifen. Das Übergeben von Scheduler-Zugangsdaten ist eine geeignete und sichere Möglichkeit zum Speichern und Verwalten von Benutzername/Kennwort/Schlüssel für die Authentifizierung.

    • 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.

    • Mit dem Argument CREDENTIAL der Funktionen SIMPLE_BIND_S und BIND_S wird die Authentifizierung auf Basis von Zugangsdaten für den Directory-Server ausgeführt.

    • Beispiele:
      • Erstellen Sie ein Zugangsdatenobjekt:

        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 mit dem LDAP-Server ldap.example.com unter der 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. Beispiele:

        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 mit dem LDAP-Server ldap.example.com unter der 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 einzige 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 Synonyme - Überblick.

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

  • 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 es in dieser API nicht erforderlich, den Parameter private_target auf TRUE zu setzen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.
  • DBMS_LDAP Fehler

    Fehlermeldung Mögliche Ursache

    ORA-31400: Missing or invalid scheduler credential

    Übergebene Zugangsdaten sind NULL oder ungültig.

Weitere Informationen finden Sie unter DBMS_LDAP in PL/SQL Packages and Types Reference.

DBMS_NETWORK_ACL_ADMIN PL/SQL-Pakethinweise

Enthält Hinweise zum Package DBMS_NETWORK_ACL_ADMIN:

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

  • Die HTTP_PROXY-ACL ist auf privaten Endpunkten zulässig.

Weitere Informationen finden Sie unter DBMS_NETWORK_ACL_ADMIN in PL/SQL Packages and Types Reference.

UTL_HTTP PL/SQL-Pakethinweise

Enthält Hinweise zum 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:

    • DBMS_CLOUD-Anforderungen entsprechen nicht dem Proxyserver, den Sie mit UTL_HTTP.SET_PROXY festlegen. 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 verwendeten vertrauenswürdigen Root- und SSL-Zwischenzertifikate 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 Vom Kunden verwaltetes Wallet für externe Anrufe 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 Synonyme - Überblick.

  • Die 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 privaten Endpunkt-VCN 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 dafür bei Verwendung von UTL_HTTP angezeigt:

    Fehlermeldung Mögliche 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

    Die übergebenen 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 Referenz zu PL/SQL-Packages und -Typen.

UTL_INADDR PL/SQL-Pakethinweise

Enthält Hinweise zum Package UTL_INADDR:

  • Das Package UTL_INADDR kann in einer Autonomous Database-Instanz mit einem privaten Endpunkt (PE) verwendet werden.

  • 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 PL/SQL Packages and Types Reference.

UTL_SMTP PL/SQL-Pakethinweise

Enthält Hinweise zum Package UTL_SMTP:

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

  • Mails mit einer IP-Adresse im Hostnamen sind nicht zulässig.

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

  • Das Argument CREDENTIAL der Funktion SET_CREDENTIAL wird verwendet, um das Scheduler-Zugangsdatenobjekt 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 Synonyme - Überblick.

  • 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 privaten Endpunkt-VCN der Autonomous Database-Instanz unterliegen. Weitere Informationen finden Sie unter Erweiterte Sicherheit für ausgehende Verbindungen mit privaten Endpunkten.

  • UTL_SMTP Fehler

    Fehlermeldung Mögliche Ursache

    ORA-29261: Bad argument

    Die übergebenen 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 PL/SQL Packages and Types Reference.

UTL_TCP PL/SQL-Pakethinweise

Enthält Hinweise zum 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. Als Standardwert für die Eigenschaft WALLET_PATH und WALLET_PASSWORD wird das Wallet festgelegt, das von UTL_HTTP und DBMS_CLOUD für ausgehende Webanforderungen in Autonomous Database verwendet wird.

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

  • 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 privaten Endpunkt-VCN 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 PL/SQL Packages and Types Reference.