Configurar e Estabelecer Conexão com o Oracle Autonomous Database

Obtenha os arquivos de configuração do Oracle Autonomous Database e instale-os na máquina em que o CMAN-TDM está instalado.

Configurar os Arquivos da Wallet do Oracle Autonomous Database Usando o Protocolo TLS Mútuo

Use uma wallet para estabelecer conexão com um Oracle Autonomous Database (incluindo Oracle Autonomous Data Warehouse, Oracle Autonomous Transaction Processing e Oracle Autonomous JSON Database). Isso oferece TLS (Transport Layer Security), que fornece segurança aprimorada para autenticação e criptografia.
  1. Faça log-in na Console do Oracle Cloud Infrastructure e navegue até a região em que o banco de dados autônomo reside.
  2. Navegue até a página Autonomous Database e clique na guia Conexão do BD.
    Os Detalhes do Autonomous Database são exibidos.
  3. Clique em Fazer Download da Wallet.
    Você será solicitado a informar uma senha da wallet.
  4. Forneça uma senha e, em seguida, faça download do arquivo ZIP da wallet para sua máquina local.
    Transfira o arquivo ZIP baixado para sua máquina Linux usando seu aplicativo ou método de transferência de arquivo SSH preferencial. É importante salvar (ou lembrar) a senha da wallet. Você deverá usar a senha mais adiante nesta solução.
    Vá para a próxima etapa depois que o arquivo ZIP da wallet estiver na sua máquina Linux.
  5. Extraia o conteúdo para o diretório $TNS_ADMIN.

    Observação:

    Esse local pode ser o caminho padrão $ORACLE_HOME/network/admin da instalação da máquina CMAN-TDM.

    A wallet não contém credenciais de nome de usuário e senha do banco de dados, mas você ainda deve manter a wallet e os arquivos em um local seguro para uso posterior.

    Veja a seguir um exemplo dos arquivos extraídos:

    -rw-r--r--. 1 oracle oinstall  7085 Sep  3 07:24 cwallet.sso
    -rw-r--r--. 1 oracle oinstall  7040 Sep  3 07:24 ewallet.p12
    -rw-r--r--. 1 oracle oinstall  3243 Aug 24 14:25 keystore.jks
    -rw-r--r--. 1 oracle oinstall   691 Aug 24 14:25 ojdbc.properties
    -rw-r--r--. 1 oracle oinstall  3387 Aug 24 14:25 README
    -rw-r--r--. 1 oracle oinstall   235 Sep  3 08:00 sqlnet.ora
    -rw-r--r--. 1 oracle oinstall  1832 Sep  3 08:41 tnsnames.ora
    -rw-r--r--. 1 oracle oinstall  3336 Aug 24 14:25 truststore.jks

    Os arquivos principais necessários para o caso de uso atual são cwallet.sso, ewallet.p12, sqlnet.ora e tnsnames.ora. Os outros arquivos só serão necessários se o usuário planeja se conectar por meio de um aplicativo JDBC.

  6. Edite o arquivo sqlnet.ora e altere o DIRECTORY do local da wallet para o diretório que contém o arquivo cwallet.sso:
    WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/u01/app/oracle/network/admin")))
    SSL_SERVER_DN_MATCH=yes

    Agora que a wallet está definida, você pode se conectar ao seu banco de dados usando uma das strings de conexão "nome do serviço de rede" de tnsnames.ora (por exemplo, exampledb_high).

  7. Abra o arquivo tnsnames.ora e armazene os detalhes da conexão do seu banco de dados autônomo em outro arquivo, como $HOME/dbdetails.txt:
    Você usará os parâmetros de endereço, segurança e nome de serviço do banco de dados autônomo ao configurar o CMAN-TDM.
  8. (Opcional) Verifique a conexão de banco de dados usando o SQL*Plus.
    • Se o SQL*Plus estiver na mesma máquina do CMAN-TDM, você poderá exibir o arquivo tnsnames.ora no diretório da wallet $TNS_ADMIN.

    • Se o SQL*Plus estiver instalado em uma máquina diferente da CMAN-TDM, copie os arquivos da wallet do Autonomous Database para o diretório $TNS_ADMIN da máquina em que o SQL*Plus está instalado. Em seguida, copie os detalhes do banco de dados da seção anterior para o arquivo $TNS_ADMIN/tnsnames.ora na mesma máquina.

    O arquivo $TNS_ADMIN/tnsnames.ora contém vários nomes de serviço de rede (à esquerda dos sinais "="). Você pode usar qualquer um, dependendo do nível de desempenho e simultaneidade de serviço desejado no banco de dados.

    Execute o SQL*Plus como o usuário ADMIN e informe a senha desse usuário definida durante a criação do banco de dados:

    $ sqlplus -l admin@adb-name_high
    Quando você tiver êxito, estará conectado ao seu banco de dados.

Configurar o CMAN para Estabelecer Conexão com o Oracle Autonomous Database

Crie, configure e adicione arquivos de configuração CMAN (cman.ora) com todas as especificações no diretório $TNS_ADMIN da máquina CMAN-TDM. O diretório geralmente está localizado em ORACLE_HOME/network/admin.

O arquivo cman.ora é o arquivo de configuração principal que é lido pelo CMAN-TDM. Ele contém todos os detalhes de configuração para permitir que o Traffic Director e o CMAN estabeleçam conexão com o Oracle Autonomous Database.

  1. Faça log-in como usuário oracle.
  2. Navegue até o diretório $TNS_ADMIN e crie o arquivo cman.ora.
    $ cd $TNS_ADMIN
    $ vi cman.ora
  3. Configure o arquivo cman.ora.
    Neste exemplo, o nome da instância CMAN-TDM é cman-test. O aplicativo cliente se conecta ao processo CMAN por meio do protocolo TCP e o CMAN se conecta ao Oracle Autonomous Database por meio do protocolo TCPS.

    O parâmetro de endereço contém o nome de host, protocolo do servidor CMAN-TDM. O arquivo cman.ora de exemplo a seguir usa TCP e número de porta 1523. Você pode escolher qualquer número de porta disponível na sua máquina Linux.

    Configure os seguintes parâmetros:

    • tdm=true: Importante! Defina o parâmetro tdm como verdadeiro para ativar o Modo do Traffic Director.
    • tdm_threading_mode=dedicated: Este exemplo está executando o CMAN-TDM no modo dedicado, que é o modo padrão para o Modo do Traffic Director. Você pode executar o Modo do Traffic Director no modo compartilhado.
    • log_level: Definido para ativar o nível necessário de log para fins de teste e depuração.
    • max_connections: conjunto de acordo com seus requisitos de desempenho.
    • idle_timeout=0
    • registration_invited_nodes = *
    • inbound_connect_timeout=0
    • session_timeout=0
    • outbound_connect_timeout=0
    • max_gateway_processes: Ajuste de acordo com seus requisitos de desempenho.
    • min_gateway_processes: Ajuste de acordo com seus requisitos de desempenho.
    • trace_level: Definido para ativar o nível necessário de rastreamento para fins de teste e depuração.
    • max_cmctl_sessions: Ajuste de acordo com seus requisitos de desempenho.
    • event_group: init_and_term, memory_ops
    • next_hop: O parâmetro aponta para os detalhes de endereço do Oracle Autonomous Database junto com os detalhes de SSL. Esses detalhes são obtidos do arquivo dbdetails.txt, que você criou na seção anterior.
    • WALLET_LOCATION: O parâmetro aponta para a localização da wallet do usuário do aplicativo Traffic Director Mode, que você criará posteriormente nesta seção.
    • SQLNET.WALLET_OVERRIDE = VERDADEIRO
    Veja a seguir um arquivo de exemplo cman.ora:
    exampledb_high = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-1.oraclecloud.com))(connect_data=(service_name=g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adwc.uscom-east-1.oraclecloud.com, OU=Oracle BMCS US, O=Oracle Corporation, L=Redwood City, ST=California, C=US")))
    
    cman-test = (configuration=
      (address=(protocol=tcp)(host=oracle-cloud-linuxvm)(port=1523))
      (parameter_list =
        (tdm=true)
        (tdm_threading_mode=dedicated)
        (log_level=off)
        (max_connections=50)
        (idle_timeout=0)
        (registration_invited_nodes = *)
        (inbound_connect_timeout=0)
        (session_timeout=0)
        (outbound_connect_timeout=0)
        (max_gateway_processes=8)
        (min_gateway_processes=3)
        (trace_level=support)
        (max_cmctl_sessions=4)
        (event_group=init_and_term,memory_ops)
      )
      (next_hop=(description=(address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-1.oraclecloud.com))(security=(ssl_server_dn_match=on)(ssl_server_cert_dn="CN=adwc.uscom-east-1.oraclecloud.com, OU=Oracle BMCS US, O=Oracle Corporation, L=Redwood City, ST=California, C=US"))))
      (rule_list=
        (rule=
           (src=*)(dst=*)(srv=*)(act=accept)
           (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on))
      ) )
    )
    
    WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/u01/app/oracle/network/admin")))
    SQLNET.WALLET_OVERRIDE = TRUE
  4. Crie um usuário proxy do banco de dados (tdm) para obter todas as permissões necessárias para ativar o Modo do Traffic Director (TDM).
    1. Faça log-in no Oracle Autonomous Database por meio do SQL*Plus como usuário do admin.
      $ sqlplus admin@exampledb_high
      
      SQL*Plus: Release 21.0.0.0.0 - Production on Tue May 6 15:34:43 2025
      Version 21.3.0.0.0
      
      Copyright (c) 1982, 2025, Oracle.  All rights reserved.
      
      Enter password:
      Last Successful login time: Tue May 06 2025 15:33:09 +00:00
      
      Connected to:
      Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
      Version 19.12.0.1.0
    2. Crie um usuário proxy do banco de dados.
      Este exemplo usa tdm como o usuário proxy do banco de dados.
      SQL> create user tdm identified by {password} -- replace {password} with your actual password
      
      User created.
      
      SQL> grant create session to tdm;
      
      Grant succeeded.
    3. Saia do SQL*Plus.
  5. Crie a wallet do usuário proxy do banco de dados.

    Adicione as Credenciais do Usuário do TDM à wallet existente do Autonomous Database.

    1. Navegue até o diretório $TNS_ADMIN no qual a wallet do Autonomous Database está localizada.
      O diretório geralmente é $ORACLE_HOME/network/admin.
      $ cd $TNS_ADMIN
    2. Adicione os detalhes do usuário tdm à wallet do Autonomous Database usando o utilitário mkstore presente no diretório $ORACLE_HOME/bin.

      Observação:

      • Para o parâmetro service_name, informe o nome do serviço que está no arquivo dbdetails.txt que você criou anteriormente.
      • Para os parâmetros username e password, informe suas credenciais de usuário tdm. Repita esta etapa se quiser que outros serviços (como exampledb_low) estejam disponíveis por meio de tdm.

      Use a seguinte sintaxe: $ORACLE_HOME/bin/mkstore -wrl . -createCredential service_name username password. Por exemplo:

      
      
      $ $ORACLE_HOME/bin/mkstore -wrl . -createCredential g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com tdm {password}
    3. Verifique se a wallet foi criada corretamente usando o utilitário orapki.
      $ $ORACLE_HOME/bin/orapki wallet display -wallet .
      Oracle PKI Tool Release 21.0.0.0.0 - Production
      Version 21.3.0.0.0
      Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.
      
      Requested Certificates:
      User Certificates:
      Subject:        CN=AAE9D2E1AE8646298FED591FC4A097EA,DNQ=V1
      Oracle Secret Store entries:
      oracle.security.client.connect_string1
      oracle.security.client.password1
      oracle.security.client.username1
      Trusted Certificates:
      Subject:        CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US
      Subject:        C=US,ST=California,L=Redwood Shores,O=Oracle Corporation Autonomous Data Warehouse Cloud Self-signed CA,CN=Autonomous Data Warehouse Cloud CA
      Subject:        CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US

      A saída deve conter entradas do Oracle Secret Store, que indicam que as credenciais do usuário tdm são armazenadas e são Certificados Confiáveis e Certificados do Usuário (certificados SSL do Autonomous Database).

    4. Verifique se as credenciais do usuário tdm estão na wallet usando o utilitário mkstore. Quando for solicitada a senha da wallet, informe a senha da wallet do Autonomous Database que você criou quando fez download do arquivo zip da wallet na Console do Oracle Cloud Infrastructure.
      $ $ORACLE_HOME/bin/mkstore -wrl . -listCredential
      Oracle Secret Store Tool Release 21.0.0.0.0 - Production
      Version 21.3.0.0.0
      Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.
      
      Enter wallet password:
      List credential (index: connect_string username)
      1: g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com tdm
  6. Conecte-se usando um usuário do aplicativo CMAN-TDM no Oracle Autonomous Database.
    Você precisará criar um usuário de banco de dados 'normal' para acesso geral ao aplicativo em vez do usuário ADMIN privilegiado para estabelecer conexão com o Oracle Autonomous Database por meio do CMAN-TDM usando as permissões do usuário proxy do banco de dados (tdm).

    Observação:

    Se você já tiver um ou mais usuários de aplicativo existentes no Autonomous Database, ignore esta etapa.
    1. Crie um usuário do banco de dados.

      Você pode copiar e personalizar o script createuser.sql a seguir para criar o usuário.

      define USERNAME = &1
      
      -- Uncomment if you want to clean up a previous user
      -- begin execute immediate 'drop user &USERNAME cascade'; exception when others then if sqlcode <> -1918 then raise; end if; end;
      -- /
      
      create user &USERNAME;
      
      alter user &USERNAME
            default tablespace data temporary tablespace temp
            account unlock quota unlimited on data;
      
      grant connect, resource to &USERNAME;
      
      grant create session, create table, create procedure,
            create sequence, create trigger, create view,
            create synonym, alter  session, create type,
            soda_app to &USERNAME;
      
      password &USERNAME
    2. Inicie o SQL*Plus como o usuário ADMIN:
      $ sqlplus -l admin@exampledb_high
    3. Execute o script createuser.sql.

      Informe o nome do usuário como argumento de script. Este exemplo usa example.

      O script solicitará que você defina a senha para este novo usuário. A senha deve atender às Diretrizes de Senha do Usuário do Oracle Autonomous Database. Você não poderá criar um usuário se não atender às diretrizes.

      SQL> @createuser.sql example
      O novo usuário é criado assim que você informa a nova senha.
  7. Adicione os privilégios tdm do usuário proxy do banco de dados a todos os usuários do aplicativo que exigem acesso ao Autonomous Database por meio do CMAN-TDM e encerre o SQL*Plus.
    SQL> alter user example grant connect through tdm;
    User altered.
    SQL> exit
  8. Verifique se a conexão foi bem-sucedida para o novo usuário (será solicitado que você digite a senha):
    $ sqlplus -l example@exampledb_high
    
    [ . . .]
    
    SQL> show user
    USER is "example"
    
    SQL> quit

Você usará esse usuário para estabelecer conexão com o Oracle Autonomous Database por meio do CMAN-TDM.

Estabelecer Conexão com o Oracle Autonomous Database por Meio do CMAN

Adicione o endereço CMAN-TDM do servidor no arquivo $TNS_ADMIN/tnsnames.ora na máquina que está executando o aplicativo cliente para adicionar a conexão.
  1. Abra a porta CMAN-TDM (1523 nesse caso) primeiro como o usuário root na sua VM Linux do CMAN-TDM se a VM estiver protegida por um firewall.
    $ sudo su root
    $ firewall-cmd --permanent --add-port=1523/tcp
    $ firewall-cmd --reload
  2. Você pode exibir o arquivo $TNS_ADMIN/tnsnames.ora da máquina em que o aplicativo cliente está localizado para confirmar os parâmetros de endereço. Você pode adicionar o alias do Connect CMAN-TDM no arquivo.

    Neste exemplo, o aplicativo cliente SQL*Plus está na mesma máquina que o CMAN-TDM.

    O parâmetro de endereço inclui o endereço CMAN-TDM. O parâmetro connect_data deve conter o parâmetro service_name do Autonomous Database.

    exampledb_high_cman_tdm = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcp)(port=1523)(host=oracle-cloud-linuxvm))(connect_data=(service_name=g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com)))
  3. Execute o utilitário cmctl para iniciar CMAN-TDM.
    $ $ORACLE_HOME/bin/cmctl startup -c cman-test
    O utilitário estabelecerá conexão com a instância do CMAN e iniciará essa conexão. O status da instância e os detalhes são exibidos.
  4. Execute o SQL*Plus usando o Alias do Connect CMAN-TDM e o usuário do aplicativo example criados anteriormente para estabelecer conexão com o Autonomous Database.
    $ sqlplus example@exampledb_high_cman_tdm

    A consulta SQL exibirá o usuário proxy do banco de dados TDM usado pelo CMAN-TDM para estabelecer conexão com o Oracle Autonomous Database. Essa consulta retornará um valor em branco quando estabelecermos conexão diretamente com o Oracle Database.

Agora você está conectado por meio do CMAN-TDM a um Oracle Autonomous Database.