Conexión de aplicaciones Python sin una cartera (TLS

Puede conectar aplicaciones de Python a la instancia de Autonomous Database sin una cartera. La conexión de una aplicación Python sin una cartera (TLS) proporciona seguridad para la autenticación y el cifrado. Además, la seguridad se aplica mediante credenciales de cliente (proporcionando un nombre de usuario y una contraseña).

El "modo fino" por defecto del controlador python-oracledb se conecta directamente a Oracle Database. De manera opcional, puede utilizar bibliotecas de Oracle Client, "modo grueso", para algunas funciones adicionales. Las bibliotecas de Oracle Client pueden ser de Oracle Instant Client, el cliente de Oracle completo o de una instalación de Oracle Database.

Siga estos pasos para conectar la aplicación Python a una instancia de Autonomous Database sin una cartera (TLS):

  1. Instalación de Python y el controlador python-oracledb

  2. Activación de TLS en Autonomous Database y obtención de la cadena de conexión

  3. Ejecución de una aplicación Python sin una cartera

Consulte Activación del modo grueso de python-oracledb para obtener información sobre el modo Grueso.

Temas

Activación de TLS en Autonomous Database y obtención de la cadena de conexión

Para ejecutar una aplicación Python sin una cartera, active la instancia de Autonomous Database para conexiones TLS y obtenga una cadena de conexión para ponerse en contacto con la base de datos desde la aplicación Python.
  1. Determine si la instancia de Autonomous Database está activada para conexiones TLS.

    Si la instancia está activada para conexiones TLS, en el área Red de la consola de Oracle Cloud Infrastructure, en el campo Autenticación TLSutual se muestra: No es necesario:

    Descripción de adb_mutual_tls_not_required.png a continuación

    Si la instancia necesita autenticación TLS mutua, permita conexiones TLS en la instancia de Autonomous Database. Consulte Actualización de la instancia de Autonomous Database para permitir tanto la autenticación TLS como mTLS para obtener información.

  2. Obtenga una cadena de conexión de servicio de Autonomous Database para acceder a la base de datos de la siguiente forma:
    1. En la consola de Oracle Cloud Infrastructure, haga clic en Conexión a base de datos.
    2. Seleccione TLS en el cuadro de diálogo Conexión de base de datos, en Cadenas de conexión, en la lista desplegable Autenticación TLS.
      Nota

      Debe seleccionar TLS en la lista desplegable Autenticación TLS para obtener las cadenas de conexión TLS antes de copiar una cadena de conexión (cuando el valor es TLS múltiple, las cadenas de conexión tienen valores diferentes y no funcionan con conexiones TLS).
    3. Copie la cadena de conexión para el servicio de base de datos que desea utilizar con la aplicación.

Ejecución de una aplicación Python sin una cartera

Una aplicación Python se puede conectar a su instancia de Autonomous Database sin una cartera (TLS) mediante las credenciales de base de datos y un descriptor de conexión.

  1. Obtenga la cadena de conexión, como se describe en Activación de TLS en Autonomous Database y obtención de la cadena de conexión.
  2. En la aplicación Python, defina los siguientes parámetros de conexión para conectarse a una instancia de Autonomous Database:
    • dsn: utilice la cadena de conexión para especificar el nombre de servicio de base de datos deseado.
    • password: especifica la contraseña del usuario de la base de datos.
    • user: especifica el usuario de base de datos.

    Por ejemplo:

    cs='''(description = (retry_count=20)(retry_delay=3)(address=(protocol=tcps)
         (port=1522)(host=xxx.oraclecloud.com))
         (connect_data=(service_name=xxx.adb.oraclecloud.com))
         (security=(ssl_server_dn_match=yes)))'''
    
    connection=oracledb.connect(
         user="admin",
         password=password,
         dsn=cs)
  3. Si se desea conectar en modo Grueso, incluya oracledb.init_oracle_client() en la aplicación Python.

    Por ejemplo:

    cs='''(description = (retry_count=20)(retry_delay=3)(address=(protocol=tcps)
         (port=1522)(host=xxx.oraclecloud.com))
         (connect_data=(service_name=xxx.adb.oraclecloud.com))
         (security=(ssl_server_dn_match=yes)))'''
    
    oracledb.init_oracle_client()
    connection=oracledb.connect(
         user="admin",
         password=password,
         dsn=cs)