Remarques sur le package PL/SQL pour Autonomous Database
Remarques sur les packages PL/SQL Oracle Database dans Autonomous Database.
Packages PL/SQL non disponibles
-
DBMS_DEBUG_JDWP
-
DBMS_DEBUG_JDWP_CUSTOM
Notes sur le package PL/SQL DBMS_LDAP
Fournit des remarques pour le package 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
etSSLWALLETPASSWD
pour la procédureOPEN_SSL
sont ignorés. La valeur par défaut de la propriétéSSLWRL
est définie sur le portefeuille utilisé parUTL_HTTP
etDBMS_CLOUD
pour effectuer des demandes Web sortantes sur Autonomous Database. -
Les sous-programmes
DBMS_LDAP.SIMPLE_BIND_S
etDBMS_LDAP.BIND_S
effectuent l'authentification auprès du serveur d'annuaire.Les sous-programmes
DBMS_LDAP.SIMPLE_BIND_S
etDBMS_LDAP.BIND_S
sont modifiés pour accepter les objets d'informations d'identification en tant qu'argument.Voici les notes d'utilisation et des exemples de ces sous-programmes modifiés :
-
Les sous-programmes
SIMPLE_BIND_S
etBIND_S
modifiés vous permettent de transmettre des objets d'informations d'identification pour définir l'authentification du serveur d'annuaire. Les objets d'informations d'identification sont des objets de schéma. Ils ne sont donc accessibles qu'aux utilisateurs dotés de privilèges et vous permettent de configurer des privilèges de niveau schéma pour contrôler les informations d'identification. La transmission des informations d'identification du planificateur est un moyen approprié et sécurisé de stocker et de gérer le nom utilisateur, le mot de passe et les clés pour l'authentification. -
Les sous-programmes
SIMPLE_BIND_S
etBIND_S
modifiés constituent une alternative sécurisée et pratique aux sous-programmesSIMPLE_BIND_S
etBIND_S
précédemment existants.Pour plus d'informations, reportez-vous aux sections FUNCTION simple_bind_s et FUNCTION bind_s.
-
L'argument
CREDENTIAL
des fonctionsSIMPLE_BIND_S
etBIND_S
est utilisé pour effectuer une authentification basée sur les informations d'identification sur le serveur d'annuaire. -
Exemple :
-
Créez un objet d'informations d'identification :
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'LDAP_CRED', username => 'web_app_user', password => 'password' ); END;
Cela crée un objet d'informations d'identification qui crée une paire nom utilisateur/mot de passe stockée.
Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.
Pour plus d'informations, reportez-vous à Spécification des informations d'identification de travail du planificateur.
-
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 LDAPldap.example.com
au numéro de port636
. La valeurl_ldap_conn
dans la fonctionSIMPLE_BIND_S
est l'identificateur de session LDAP etLDAP_CRED
est le nom des informations d'identification. -
function bind_s
effectue une authentification complexe au serveur d'annuaire. 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 LDAPldap.example.com
au numéro de port636
. La valeurl_ldap_conn
dans la fonctionBIND_S
est l'identificateur de session LDAP etLDAP_CRED
est le nom des informations d'identification.METH
est la méthode d'authentification. La seule valeur valide estDBMS_LDAP_UTL.AUTH_SIMPLE
.
-
-
Les privilèges
EXECUTE
surDBMS_CLOUD
ouDWROLE
sont requis pour créer des informations d'identification de planificateur. -
Les informations d'identification transmises doivent être présentes dans le schéma en cours ou avoir un synonyme pointant vers des informations d'identification dans le schéma et être à l'état activé.
-
Un synonyme public ou privé pointant vers des informations d'identification dans un autre schéma utilisateur peut être fourni en tant que valeur pour le paramètre
CREDENTIAL
, à condition que vous disposiez du privilègeEXECUTE
sur l'objet d'informations d'identification de base pointé par le synonyme. Pour plus d'informations, reportez-vous à Présentation des synonymes.
-
-
SSL/TLS est appliqué à toutes les communications entre le serveur LDAP et Autonomous Database.
-
Lorsque votre instance Autonomous Database est configurée avec une adresse privée, définissez le paramètre de base de données
ROUTE_OUTBOUND_CONNECTIONS
surPRIVATE_ENDPOINT
pour indiquer que toutes les connexions LDAP sortantes sont soumises aux règles sortantes du VCN de l'adresse privée de l'instance Autonomous Database. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées. -
Afin d'utiliser
DBMS_LDAP
pour une connexion sur une adresse privée, utilisezDBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE
et indiquez le paramètreprivate_target
avec la valeurTRUE
.Remarque
Si vous définissezROUTE_OUTBOUND_CONNECTIONS
surPRIVATE_ENDPOINT
, la définition du paramètreprivate_target
surTRUE
n'est pas requise dans cette API. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées. -
DBMS_LDAP
ErreurMessage d'erreur Cause potentielle ORA-31400: Missing or invalid scheduler credential
Les informations d'identification transmises sont NULL ou ne sont pas valides.
Pour plus d'informations, reportez-vous à DBMS_LDAP dans Référence sur les types et les packages PL/SQL.
DBMS_NETWORK_ACL_ADMIN Remarques sur le package PL/SQL
Fournit des remarques pour le package DBMS_NETWORK_ACL_ADMIN
:
-
L'octroi de privilèges de liste de contrôle d'accès sur des adresses IP n'est pas autorisé.
-
La liste de contrôle d'accès
HTTP_PROXY
est autorisée sur les adresses privées.
Pour plus d'informations, reportez-vous à DBMS_NETWORK_ACL_ADMIN dans Référence sur les types et les packages PL/SQL.
DBMS_SCHEDULER Notes sur le package
Fournit des notes pour le package DBMS_SCHEDULER
.
Dans Autonomous Database, la procédure DBMS_SCHEDULER.CREATE_JOB
prend en charge les types de travail PLSQL_BLOCK
et STORED_PROCEDURE
pour le paramètre job_type
.
A l'aide d'un élément job_type
non pris en charge, des messages tels que les suivants peuvent s'afficher :
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, reportez-vous à Classes de travail prédéfinies avec Oracle Scheduler et à DBMS_SCHEDULER.
UTL_HTTP Remarques sur le package PL/SQL
Fournit des remarques pour le package UTL_HTTP
:
-
Les connexions par le biais d'adresses IP ne sont pas autorisées.
-
Seul
HTTPS
est autorisé lorsque l'instance Autonomous Database se trouve sur une adresse publique. Lorsque l'instance Autonomous Database se trouve sur une adresse privée, les connexionsHTTPS
etHTTP_PROXY
sont autorisées (les connexionsHTTP
sont interdites pour les adresses publiques et privées). -
L'API
UTL_HTTP.set_proxy
est autorisée lorsque l'instance Autonomous Database se trouve sur une adresse privée. -
Lorsque l'instance Autonomous Database se trouve sur une adresse privée et que vous utilisez
HTTP_PROXY
ou l'APIUTL_HTTP.SET_PROXY
:-
Les demandes
DBMS_CLOUD
n'honorent pas le serveur proxy défini avecUTL_HTTP.SET_PROXY
. Cela inclutDBMS_CLOUD.SEND_REQUEST
et tous les accès au stockage d'objet pour les tables externesDBMS_CLOUD
que vous définissez avecDBMS_CLOUD.CREATE_EXTERNAL_TABLE
,DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
ouDBMS_CLOUD.CREATE_HYBRID_PART_TABLE
. -
Les demandes
APEX_WEB_SERVICE
ne respectent pas le serveur proxy que vous avez défini avecUTL_HTTP.SET_PROXY
.
-
-
Tous les services Web doivent être sécurisés. Le seul port autorisé est 443 lorsque l'instance Autonomous Database se trouve sur une adresse publique. Lorsque l'instance Autonomous Database se trouve sur une adresse privée, cette restriction ne s'applique pas.
Votre instance Autonomous Database est préconfigurée avec un Oracle Wallet qui contient plus de 90 des certificats SSL intermédiaires et racine les plus fréquemment approuvés. Oracle Wallet est géré de manière centralisée. Vous pouvez configurer
UTL_HTTP
afin d'utiliser un portefeuille pour un site protégé à l'aide de certificats SSL autosignés. Pour plus d'informations, reportez-vous à Utilisation d'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
etWALLET_PASSWORD
pour les procéduresCREATE_REQUEST_CONTEXT
,REQUEST
etREQUEST_PIECES
sont ignorés. -
L'argument
CREDENTIAL
de la procédureSET_CREDENTIAL
est utilisé pour transmettre l'objet d'informations d'identification en tant qu'entrée à la procédure. Pour plus d'informations, reportez-vous à Spécification des informations d'identification de travail du planificateur et à Procédure CREATE_CREDENTIAL. -
Les privilèges
EXECUTE
surDBMS_CLOUD
ouDWROLE
sont requis pour créer des objets d'informations d'identification. -
Les informations d'identification transmises doivent être présentes dans le schéma utilisateur en cours et être à l'état activé.
-
Un synonyme public ou privé pointant vers des informations d'identification dans un autre schéma utilisateur peut être fourni en tant que valeur pour le paramètre
CREDENTIAL
, à condition que vous disposiez du privilègeEXECUTE
sur l'objet d'informations d'identification de base pointé par le synonyme. Pour plus d'informations, reportez-vous à Présentation des synonymes. -
La configuration d'Oracle Wallet ne peut pas être modifiée. Tous les arguments pour la procédure
SET_WALLET
sont ignorés. -
Lorsque votre instance Autonomous Database est configurée avec une adresse privée, définissez le paramètre de base de données
ROUTE_OUTBOUND_CONNECTIONS
surPRIVATE_ENDPOINT
pour indiquer que toutes les connexionsUTL_HTTP
sortantes sont soumises aux règles sortantes du VCN de l'adresse privée de l'instance Autonomous Database. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées. -
UTL_HTTP
: erreursLe tableau suivant présente les messages d'erreur et leurs causes possibles lors de l'utilisation du package
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 est privé.
ORA-24247: network access denied by access control list (ACL)
La liste de contrôle d'accès de l'hôte indiqué est introuvable.
ORA-29024: Certificate validation failure
Le certificat de l'hôte n'existe pas ou fait partie des certificats pris en charge.
ORA-29261: Bad argument
Les informations d'identification transmises ne sont pas valides ou sont désactivées, ou l'utilisateur ne dispose pas de privilèges suffisants sur les informations d'identification.
Pour plus d'informations, reportez-vous à UTL_HTTP dans Référence sur les types et les packages PL/SQL.
UTL_INADDR Remarques sur le package PL/SQL
Fournit des remarques pour le package UTL_INADDR
:
-
Le package
UTL_INADDR
peut être utilisé sur une instance Autonomous Database avec une adresse privée. -
La fonction
GET_HOST_ADDRESS
est disponible. -
La fonction
GET_HOST_NAME
n'est pas disponible.
Pour plus d'informations, reportez-vous à UTL_INADDR dans le manuel PL/SQL Packages and Types Reference.
UTL_SMTP Remarques sur le package PL/SQL
Fournit des remarques pour le package UTL_SMTP
:
-
Les adresses SMTP publiques peuvent être utilisées tant que le routage est effectué via l'adresse de connexion inverse du client (RCE).
-
Les courriels avec une adresse IP dans le nom d'hôte ne sont pas autorisés.
-
Seuls les ports 25 et 587 sont autorisés.
-
L'argument
CREDENTIAL
de la fonctionSET_CREDENTIAL
est utilisé pour transmettre l'objet d'informations d'identification du planificateur en tant qu'entrée à la fonction. Pour plus d'informations, reportez-vous à Spécification des informations d'identification de travail du planificateur et à Procédure CREATE_CREDENTIAL. -
Les privilèges
EXECUTE
surDBMS_CLOUD
ouDWROLE
sont requis pour créer des objets d'informations d'identification. -
L'argument
CREDENTIAL
de la procédureSET_CREDENTIAL
est utilisé pour transmettre l'objet d'informations d'identification en tant qu'entrée à la procédure. Pour plus d'informations, reportez-vous à Spécification des informations d'identification de travail du planificateur. -
Les informations d'identification transmises doivent être présentes dans le schéma utilisateur en cours et être à l'état activé.
-
Un synonyme public ou privé pointant vers des informations d'identification dans un autre schéma utilisateur peut être fourni en tant que valeur pour le paramètre
CREDENTIAL
, à condition que vous disposiez du privilègeEXECUTE
sur l'objet d'informations d'identification de base pointé par le synonyme. Pour plus d'informations, reportez-vous à Présentation des synonymes. -
Lorsque votre instance Autonomous Database est configurée avec une adresse privée, définissez le paramètre de base de données
ROUTE_OUTBOUND_CONNECTIONS
surPRIVATE_ENDPOINT
pour indiquer que toutes les connexionsUTL_SMTP
sortantes sont soumises aux règles sortantes du VCN de l'adresse privée de l'instance Autonomous Database. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées. -
UTL_SMTP
ErreurMessage d'erreur Cause potentielle ORA-29261: Bad argument
Les informations d'identification transmises ne sont pas valides ou sont désactivées, ou l'utilisateur ne dispose pas de privilèges suffisants sur les informations d'identification.
Pour plus d'informations, reportez-vous à UTL_SMTP dans Référence sur les types et les packages PL/SQL.
UTL_TCP Remarques sur le package PL/SQL
Fournit des remarques pour le package UTL_TCP
:
-
L'adresse IP n'est pas autorisée dans le nom d'hôte.
-
Seuls les ports 443 (HTTP), 25 et 587 (SMTP) sont autorisés.
-
Pour le port 443, seules les URL HTTPS sont autorisées.
-
Les arguments
WALLET_PATH
etWALLET_PASSWORD
pour la procédureOPEN_CONNECTION
sont ignorés. La valeur par défaut des propriétésWALLET_PATH
etWALLET_PASSWORD
est définie sur le portefeuille utilisé parUTL_HTTP
etDBMS_CLOUD
pour effectuer des demandes Web sortantes sur Autonomous Database. -
SSL/TLS est appliqué à toutes les communications qui se produisent sur des connexions TCP/IP.
-
Lorsque votre instance Autonomous Database est configurée avec une adresse privée, définissez le paramètre de base de données
ROUTE_OUTBOUND_CONNECTIONS
surPRIVATE_ENDPOINT
pour indiquer que toutes les connexionsUTL_TCP
sortantes sont soumises aux règles sortantes du VCN de l'adresse privée de l'instance Autonomous Database. Pour plus d'informations, reportez-vous à Sécurité améliorée pour les connexions sortantes avec des adresses privées.
Pour plus d'informations, reportez-vous à UTL_TCP dans Référence sur les types et les packages PL/SQL.