Picture of Roberto Sobrinho
Roberto Sobrinho

05/09/2024

Como Eliminar a Exposição de Senhas em Scripts com Oracle Wallet


#PedraEnsinou

Recentemente, um cliente que precisava automatizar uma série de rotinas batch e tarefas de manutenção solicitou nossa ajuda para resolver um problema crítico de segurança. Seus scripts de automação continham as credenciais de banco de dados em texto claro, o que permitia que qualquer pessoa com acesso ao servidor visualizasse essas informações confidenciais. Essa prática representava um sério risco de segurança, já que contas de administradores e usuários sensíveis poderiam ser acessadas de forma indevida.

Para resolver essa questão, sugerimos a implementação do Oracle Wallet, uma ferramenta que permite a conexão ao banco de dados sem a necessidade de expor a senha nos scripts. Isso aumenta significativamente a segurança, garantindo que apenas pessoas autorizadas possam acessar as credenciais.

Neste post, você verá como configurar um Oracle Wallet para eliminar a exposição de senhas e proteger suas rotinas automatizadas.


Benefícios do Oracle Wallet

  • Eliminação da Exposição de Senhas: As senhas não precisam mais ser armazenadas em texto claro nos scripts, reduzindo o risco de que alguém acesse informações sensíveis.
  • Aumento da Segurança: Apenas pessoas que possuem acesso ao Wallet podem usar as credenciais armazenadas para acessar o banco de dados.
  • Facilidade de Automação: Scripts podem ser executados automaticamente sem a necessidade de inserir credenciais, facilitando a gestão de rotinas batch e outras tarefas.

Implementação do Oracle Wallet

Aqui está o passo a passo de como configurar um Oracle Wallet, incluindo exemplos práticos e saídas de comandos.

Passo 1: Criar o Repositório do Wallet

A primeira etapa é criar o repositório do Wallet, que será onde as credenciais do banco de dados serão armazenadas com segurança. O comando abaixo cria o repositório no diretório especificado.

$ mkstore -wrl $ORACLE_HOME/network/admin/wallet -create

$  ls -ltra $ORACLE_HOME/network/admin/wallet

Interação do Usuário: Você será solicitado a inserir e confirmar uma senha para proteger o Wallet. Certifique-se de criar uma senha segura e guardá-la em local seguro, pois será necessária para gerenciar o Wallet no futuro.

Passo 2: Configurar o tnsnames.ora

Agora, adicione uma entrada no arquivo tnsnames.ora correspondente à conexão que o Wallet usará. Isso define os parâmetros de conexão do banco de dados que serão usados para autenticação. O nome da entrada será WALLET_PDB1.

Exemplo de entrada no tnsnames.ora:

$ vi $ORACLE_HOME/network/admin/tnsnames.ora

## ADD

WALLET_PDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = xepdb1)
    )
  )
  
## ADD

$ head -n 9 $ORACLE_HOME/network/admin/tnsnames.ora

Passo 3: Adicionar Credenciais ao Wallet

Agora, adicione as credenciais de autenticação do oracle (usuário e senha) ao Wallet. Substitua WALLET_PDB1, AUTO_BATCH e senha255maluca pelas credenciais reais que você usa no seu banco de dados.

$ mkstore -wrl $ORACLE_HOME/network/admin/wallet -createCredential WALLET_PDB1 AUTO_BATCH senha255maluca

Interação do Usuário: Você será solicitado a inserir a senha do Wallet que foi criada anteriormente no passo 01.

Passo 4: Configurar o sqlnet.ora

Agora, edite o arquivo sqlnet.ora para habilitar o Oracle a usar o Wallet. Isso garante que as credenciais armazenadas no Wallet sejam utilizadas durante a conexão ao banco de dados.

Exemplo de configuração no sqlnet.ora:

$ vi $ORACLE_HOME/network/admin/sqlnet.ora

## ADD

WALLET_LOCATION = (SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=$ORACLE_HOME/network/admin/wallet)))
SQLNET.WALLET_OVERRIDE = TRUE

  
## ADD

$ head -n 4 $ORACLE_HOME/network/admin/sqlnet.ora

Com essas configurações, o Oracle agora usará o Wallet para realizar a autenticação, eliminando a necessidade de fornecer a senha diretamente no script.

Passo 5: Testar a Conexão com o Wallet

Agora que o Wallet foi configurado, é hora de testá-lo. Use o comando abaixo para se conectar ao banco de dados utilizando o Wallet.

$ sqlplus /@WALLET_PDB1

SQL> show user

Se a conexão for bem-sucedida, significa que o Wallet foi configurado corretamente e suas credenciais estão protegidas

Dicas e Boas Práticas:

  • Armazenamento Seguro: Certifique-se de que o diretório do Wallet tenha permissões restritas, permitindo acesso apenas a administradores ou usuários autorizados.
  • Backup do Wallet: Faça backups regulares do Wallet para garantir que você possa restaurá-lo em caso de falhas ou corrupção.
  • Múltiplas Credenciais: O Oracle Wallet permite armazenar credenciais para diferentes usuários e bases de dados, facilitando a automação em ambientes complexos.


A implementação do Oracle Wallet é uma solução eficaz para aumentar a segurança, eliminando a necessidade de expor senhas em scripts.
É fundamental garantir que o diretório do Wallet esteja protegido com permissões adequadas e que backups regulares sejam realizados para evitar interrupções no caso de falhas. Além disso, o impacto no desempenho é mínimo, mantendo as automações eficientes e seguras.
O Oracle Wallet também facilita a conformidade com normas de segurança e auditorias, sendo uma peça-chave para ambientes que prezam pela proteção de dados e gestão centralizada de credenciais.


🐔🐓 #20240905 #DBASobrinho #GuinaNãoTinhaDó #BóBó #CaceteDeAgulha #FériasVemAi #TatooComAMuié #VemOracleAce #AnnaAmaFrutilly #ComentaPost #PedraEnsinou 🐓🐔


Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Pesquisar

Roberto Sobrinho

Sou Roberto Fernandes Sobrinho, também conhecido como Sobrinho DBA , pós graduado em “Architecture and Database Administration”, entusiasta, dedicado e com 20 anos de experiência com Oracle Database e suas diversas distribuições e variações.

Oracle ACE Associate

2025

Specialist

Exadata Database Machine X9M

Professional

Oracle Database Administration

Professional

Oracle Database 19c: RAC, ASM, & Grid Infra Administrator

Professional

Oracle Autonomous Database Cloud

Professional

Oracle Cloud Database Migration and Integration

Professional

Oracle Database PL/SQL Developer

Associate

Oracle Cloud Infrastructure Architect

Associate

Oracle Cloud Infrastructure Foundations

Categorias

Categorias

Tags

Como Eliminar a Exposição de Senhas em Scripts com Oracle Wallet