#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 🐓🐔