Notes de l'ensemble PL/SQL pour Autonomous AI Database

Notes pour les ensembles PL/SQL d'Oracle Database dans Autonomous AI Database.

Ensembles PL/SQL non disponibles

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

Notes de l'ensemble PL/SQL DBMS_LDAP

Fournit des notes pour l'ensemble DBMS_LDAP :

  • La spécification d'une adresse IP dans le nom d'hôte n'est pas autorisée.

  • Le seul port autorisé est 636.

  • Les arguments SSLWRL et SSLWALLETPASSWD de la procédure OPEN_SSL sont ignorés. La valeur par défaut de la propriété SSLWRL est réglée au portefeuille utilisé par UTL_HTTP et DBMS_CLOUD pour effectuer des demandes Web sortantes sur la base de données d'intelligence artificielle autonome.

  • Les sous-programmes DBMS_LDAP.SIMPLE_BIND_S et DBMS_LDAP.BIND_S effectuent l'authentification sur le serveur de répertoire.

    Les sous-programmes DBMS_LDAP.SIMPLE_BIND_S et DBMS_LDAP.BIND_S sont modifiés pour accepter les objets de données d'identification en tant qu'argument.

    Les notes d'utilisation et les exemples de ces sous-programmes modifiés sont les suivants :

    • Les sous-programmes SIMPLE_BIND_S et BIND_S modifiés vous permettent de transmettre des objets de données d'identification pour définir l'authentification du serveur de répertoire. Les objets de données d'identification sont des objets de schéma. Par conséquent, ils ne sont accessibles que par des utilisateurs dotés de privilèges et vous permettent de configurer des privilèges au niveau du schéma pour contrôler les données d'identification. La transmission des données d'identification du programmateur est un moyen approprié et sécurisé de stocker et de gérer le nom d'utilisateur/mot de passe/clés pour l'authentification.

    • Les sous-programmes SIMPLE_BIND_S et BIND_S modifiés sont une alternative sûre et pratique aux sous-programmes SIMPLE_BIND_S et BIND_S existants.

      Pour plus d'informations, voir FUNCTION simple_bind_s et FUNCTION bind_s.

    • L'argument CREDENTIAL des fonctions SIMPLE_BIND_S et BIND_S est utilisé pour effectuer l'authentification basée sur des données d'identification au serveur de répertoire.

    • Exemple :
      • Créez un objet de données d'identification :

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

        Cela crée un objet de données d'identification qui crée une paire nom utilisateur/mot de passe stocké.

        Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.

        Pour plus d'informations, voir Spécification des données d'identification de la tâche du programmateur.

      • Appelez DBMS_LDAP.SIMPLE_BIND_S :

        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;
        

        Le code de cet exemple appelle d'abord la fonction DBMS_LDAP.INIT, qui initialise une session avec un serveur LDAP et établit une connexion avec le serveur LDAP ldap.example.com au numéro de port 636. La valeur l_ldap_conn dans la fonction SIMPLE_BIND_S est l'indicateur de session LDAP et LDAP_CRED est le nom des données d'identification.

      • function bind_s effectue une authentification complexe sur le serveur de répertoires. Exemple :

        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;
        

        Le code de cet exemple appelle d'abord la fonction DBMS_LDAP.INIT, qui initialise une session avec un serveur LDAP et établit une connexion avec le serveur LDAP ldap.example.com au numéro de port 636. La valeur l_ldap_conn dans la fonction BIND_S est l'indicateur de session LDAP et LDAP_CRED est le nom des données d'identification. METH est la méthode d'authentification. La seule valeur valide est DBMS_LDAP_UTL.AUTH_SIMPLE.

    • Les privilèges EXECUTE sur DBMS_CLOUD ou DWROLE sont requis pour créer les données d'identification du programmateur.

    • Les données d'identification transmises doivent être présentes dans le schéma courant ou avoir un synonyme pointant vers des données d'identification dans le schéma et être à l'état Activé.

    • Un synonyme public ou privé qui pointe vers des données d'identification dans un autre schéma d'utilisateur peut être fourni en tant que valeur pour le paramètre CREDENTIAL à condition que vous disposiez du privilège EXECUTE sur l'objet de données d'identification de base pointé par le synonyme. Pour plus d'informations, voir Aperçu des synonymes.

  • SSL/TLS est appliqué pour toutes les communications qui se produisent entre le serveur LDAP et la base de données d'IA autonome.

  • Lorsque votre instance de base de données d'intelligence artificielle autonome est configurée avec un point d'extrémité privé, réglez le paramètre de base de données ROUTE_OUTBOUND_CONNECTIONS à 'PRIVATE_ENDPOINT' pour spécifier que toutes les connexions LDAP sortantes sont soumises aux règles de trafic sortant du VCN de point d'extrémité privé de l'instance de base de données d'intelligence artificielle autonome. Pour plus d'informations, voir Sécurité améliorée pour les connexions sortantes à l'aide de points d'extrémité privés.

  • Pour utiliser DBMS_LDAP pour une connexion sur un point d'extrémité privé, utilisez DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE et spécifiez le paramètre private_target avec la valeur TRUE.

    Note

    Si vous réglez ROUTE_OUTBOUND_CONNECTIONS à PRIVATE_ENDPOINT, le réglage du paramètre private_target à TRUE n'est pas requis dans cette API. Pour plus d'informations, voir Sécurité améliorée pour les connexions sortantes avec des points d'extrémité privés.
  • DBMS_LDAP Erreur

    Message d'erreur Cause potentielle

    ORA-31400: Missing or invalid scheduler credential

    Les données d'identification transmises sont NULL ou non valides.

Pour plus d'informations, voir DBMS_LDAP dans Informations de référence sur les ensembles et les types PL/SQL.

Notes de l'ensemble PL/SQL DBMS_NETWORK_ACL_ADMIN

Fournit des notes pour l'ensemble DBMS_NETWORK_ACL_ADMIN :

  • L'octroi de privilèges de liste de contrôle d'accès sur les adresses IP n'est pas autorisé.

  • La liste de contrôle d'accès HTTP_PROXY est autorisée sur les points d'extrémité privés.

Pour plus d'informations, voir DBMS_NETWORK_ACL_ADMIN dans Informations de référence sur les ensembles et les types PL/SQL.

Notes de l'ensemble DBMS_SCHEDULER

Fournit des notes pour l'ensemble DBMS_SCHEDULER.

Dans Autonomous AI Database, la procédure DBMS_SCHEDULER.CREATE_JOB prend en charge les types de tâche PLSQL_BLOCK et STORED_PROCEDURE pour le paramètre job_type.

En utilisant un job_type non pris en charge, vous pouvez voir des messages tels que :

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

Pour plus d'informations, voir Classes de travail prédéfinies avec Oracle Scheduler et DBMS_SCHEDULER .

Notes de l'ensemble PL/SQL UTL_HTTP

Fournit des notes pour l'ensemble UTL_HTTP :

  • Les connexions au moyen d'adresses IP ne sont pas autorisées.

  • Seul HTTPS est autorisé lorsque l'instance de base de données du service d'intelligence artificielle autonome se trouve sur un point d'extrémité public. Lorsque l'instance de base de données de l'IA autonome se trouve sur un point d'extrémité privé, les connexions HTTPS et HTTP_PROXY sont autorisées (les connexions HTTP ne sont pas autorisées pour les points d'extrémité publics et privés).

  • L'API UTL_HTTP.set_proxy est autorisée lorsque l'instance de base de données du service d'intelligence artificielle autonome se trouve sur un point d'extrémité privé.

  • Lorsque l'instance de base de données du service d'intelligence artificielle autonome se trouve sur un point d'extrémité privé et que vous utilisez HTTP_PROXY ou l'API UTL_HTTP.SET_PROXY :

    • Les demandes DBMS_CLOUD ne respectent pas le serveur mandataire que vous avez défini avec UTL_HTTP.SET_PROXY. Cela inclut DBMS_CLOUD.SEND_REQUEST et tous les accès au stockage d'objets pour les tables externes DBMS_CLOUD que vous définissez avec DBMS_CLOUD.CREATE_EXTERNAL_TABLE, DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE ou DBMS_CLOUD.CREATE_HYBRID_PART_TABLE.

    • Les demandes APEX_WEB_SERVICE ne respectent pas le serveur mandataire que vous avez défini avec UTL_HTTP.SET_PROXY.

  • Tous les services Web doivent être sécurisés. Le seul port autorisé est 443 lorsque l'instance de base de données Autonomous AI Database se trouve sur un point d'extrémité public. Lorsque l'instance de base de données Autonomous AI Database se trouve sur un point d'extrémité privé, cette restriction ne s'applique pas.

    Votre instance de base de données Autonomous AI Database est préconfigurée avec un portefeuille Oracle Wallet qui contient plus de 90 des certificats SSL racines et intermédiaires les plus couramment approuvés. Oracle Wallet est géré de manière centralisée. Vous pouvez configurer UTL_HTTP pour utiliser un portefeuille pour un site protégé à l'aide de certificats SSL auto-signés. Pour plus d'informations, voir Utiliser un portefeuille géré par le client pour les appels externes avec UTL_HTTP.

  • La procédure SET_AUTHENTICATION_FROM_WALLET n'est pas autorisée.

  • Les arguments WALLET_PATH et WALLET_PASSWORD pour les procédures CREATE_REQUEST_CONTEXT, REQUEST et REQUEST_PIECES sont ignorés.

  • L'argument CREDENTIAL de la procédure SET_CREDENTIAL est utilisé pour transmettre l'objet de données d'identification en tant qu'entrée à la procédure. Pour plus d'informations, voir Spécification des données d'identification de la tâche du programmateur et Procédure CREATE_CREDENTIAL.

  • Les privilèges EXECUTE sur DBMS_CLOUD ou DWROLE sont requis pour créer des objets de données d'identification.

  • Les données d'identification transmises doivent être présentes dans le schéma de l'utilisateur courant et être à l'état Activé.

  • Un synonyme public ou privé qui pointe vers des données d'identification dans un autre schéma d'utilisateur peut être fourni en tant que valeur pour le paramètre CREDENTIAL à condition que vous disposiez du privilège EXECUTE sur l'objet de données d'identification de base pointé par le synonyme. Pour plus d'informations, voir Aperçu des synonymes.

  • La configuration d'Oracle Wallet ne peut pas être modifiée. Tous les arguments de la procédure SET_WALLET sont ignorés.

  • Lorsque votre instance de base de données d'intelligence artificielle autonome est configurée avec un point d'extrémité privé, réglez le paramètre de base de données ROUTE_OUTBOUND_CONNECTIONS à 'PRIVATE_ENDPOINT' pour spécifier que toutes les connexions UTL_HTTP sortantes sont soumises aux règles de trafic sortant du point d'extrémité privé du VCN de l'instance de base de données d'intelligence artificielle autonome. Pour plus d'informations, voir Sécurité améliorée pour les connexions sortantes à l'aide de points d'extrémité privés.

  • UTL_HTTP Erreurs

    Le tableau suivant présente les messages d'erreur et les causes possibles de ces messages d'erreur lors de l'utilisation de UTL_HTTP :

    Message d'erreur Cause potentielle

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

    L'hôte ou l'objet cible n'existe pas ou il est privé.

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

    La liste de contrôle d'accès (LCA) pour l'hôte spécifié est introuvable.

    ORA-29024: Certificate validation failure

    Le certificat de l'hôte n'existe pas ou ne figure pas parmi les certificats pris en charge.

    ORA-29261: Bad argument

    Les données d'identification transmises ne sont pas valides ou sont désactivées ou l'utilisateur ne dispose pas de privilèges suffisants sur les données d'identification.

Pour plus d'informations, voir UTL_HTTP dans Informations de référence sur les ensembles et les types PL/SQL.

Notes de l'ensemble PL/SQL UTL_INADDR

Fournit des notes pour l'ensemble UTL_INADDR :

  • L'ensemble UTL_INADDR peut être utilisé sur une instance de base de données autonome avec un point d'extrémité privé.

  • La fonction GET_HOST_ADDRESS est disponible.

  • La fonction GET_HOST_NAME n'est pas disponible.

Pour plus d'informations, voir UTL_INADDR dans Informations de référence sur les ensembles et les types PL/SQL.

Notes de l'ensemble PL/SQL UTL_SMTP

Fournit des notes pour l'ensemble UTL_SMTP :

  • Les points d'extrémité SMTP publics peuvent être utilisés tant que l'acheminement est effectué au moyen du point d'extrémité de connexion inverse (RCE) du client.

  • Les courriels avec une adresse IP dans le nom d'hôte ne sont pas autorisés.

  • Les seuls ports autorisés sont 25 et 587.

  • L'argument CREDENTIAL de la fonction SET_CREDENTIAL est utilisé pour transmettre l'objet de données d'identification du programmateur en tant qu'entrée à la fonction. Pour plus d'informations, voir Spécification des données d'identification de la tâche du programmateur et Procédure CREATE_CREDENTIAL.

  • Les privilèges EXECUTE sur DBMS_CLOUD ou DWROLE sont requis pour créer des objets de données d'identification.

  • L'argument CREDENTIAL de la procédure SET_CREDENTIAL est utilisé pour transmettre l'objet d'objets de données d'identification en tant qu'entrée à la procédure. Pour plus d'informations, voir Spécification des données d'identification de la tâche du programmateur.

  • Les données d'identification transmises doivent être présentes dans le schéma de l'utilisateur courant et être à l'état Activé.

  • Un synonyme public ou privé qui pointe vers des données d'identification dans un autre schéma d'utilisateur peut être fourni en tant que valeur pour le paramètre CREDENTIAL à condition que vous disposiez du privilège EXECUTE sur l'objet de données d'identification de base pointé par le synonyme. Pour plus d'informations, voir Aperçu des synonymes.

  • Lorsque votre instance de base de données d'intelligence artificielle autonome est configurée avec un point d'extrémité privé, réglez le paramètre de base de données ROUTE_OUTBOUND_CONNECTIONS à 'PRIVATE_ENDPOINT' pour spécifier que toutes les connexions UTL_SMTP sortantes sont soumises aux règles de trafic sortant du point d'extrémité privé du VCN de l'instance de base de données d'intelligence artificielle autonome. Pour plus d'informations, voir Sécurité améliorée pour les connexions sortantes à l'aide de points d'extrémité privés.

  • UTL_SMTP Erreur

    Message d'erreur Cause potentielle

    ORA-29261: Bad argument

    Les données d'identification transmises ne sont pas valides ou sont désactivées ou l'utilisateur ne dispose pas de privilèges suffisants sur les données d'identification.

Pour plus d'informations, voir UTL_SMTP dans Informations de référence sur les ensembles et les types PL/SQL.

Notes de l'ensemble PL/SQL UTL_TCP

Fournit des notes pour l'ensemble UTL_TCP :

  • L'adresse IP n'est pas autorisée dans le nom d'hôte.

  • Les seuls ports autorisés sont : 443 (HTTP) 25 et 587 (SMTP).

  • Pour le port 443, seules les URL HTTPS sont autorisées.

  • Les arguments WALLET_PATH et WALLET_PASSWORD pour la procédure OPEN_CONNECTION sont ignorés. La valeur par défaut pour les propriétés WALLET_PATH et WALLET_PASSWORD est réglée au portefeuille utilisé par UTL_HTTP et DBMS_CLOUD pour effectuer des demandes Web sortantes sur la base de données d'intelligence artificielle autonome.

  • SSL/TLS est appliqué pour toutes les communications se produisant sur les connexions TCP/IP.

  • Lorsque votre instance de base de données d'intelligence artificielle autonome est configurée avec un point d'extrémité privé, réglez le paramètre de base de données ROUTE_OUTBOUND_CONNECTIONS à 'PRIVATE_ENDPOINT' pour spécifier que toutes les connexions UTL_TCP sortantes sont soumises aux règles de trafic sortant du point d'extrémité privé du VCN de l'instance de base de données d'intelligence artificielle autonome. Pour plus d'informations, voir Sécurité améliorée pour les connexions sortantes à l'aide de points d'extrémité privés.

Pour plus d'informations, voir UTL_TCP dans Informations de référence sur les ensembles et les types PL/SQL.