Oracle Wallet - GPO (Grupo de Profissionais Oracle)
por Douglas Paiva de Sousa · Published agosto 8, 2014 · Updated janeiro 14, 2020
Pra que serve?Muitas vezes temos tarefas a executar de forma automática onde usamos scripts (Shell, Phyton, Batch e etc) que ficam salvos em computadores, sejam eles desktops ou até mesmo um servidor. E por se tratar de scripts, não deixam de ser arquivos texto, ou seja, são legíveis ao olho humano. Então neste caso há uma brecha de segurança, pois se alguém invadir seu servidor poderá ler este script e então capturar as informações de conexão com o seu servidor de banco de dados.
Pensando nisso a Oracle então criou o Oracle Wallet que nasceu na versão 10g, onde você irá criar um "wallet" (carteira) e dentro deste "wallet" irá criar suas "credentials" (credenciais, cartões) onde os dados estão criptografados de maneira segura e a partir de então suas informações de login e senha passam a estar criptografadas. Imaginando um script sql básico onde você tenha que se conectar a um banco de dados, com certeza haveria uma parte do código muito semelhante a esta "sqlplus hr/oracle@ORCL" neste trecho podemos nitidamente ver que o usuário é o "HR" e a senha "oracle", usando o Oracle Wallet você poderia alterar esse pedaço de código para algo similar a isto "sqlplus /@ORCL", onde você simplesmente fala o alias de seu TNS names, login e senha estarão guardados no seu "wallet" de maneira segura. Agora veremos como isso se implementa de forma prática, então "Lets take a look!"
O primeiro passo para se usar o Oracle Wallet, é criar um "sqlnet.ora" e inserir algumas informações conforme a imagem:
Neste arquivo, as linhas que são relevantes para nós neste momento são a 5ª e a 9ª linha onde vamos falar de DIRECTORY: Diretório onde será salvo o nosso "wallet" (carteira) e SQLNET.WALLET_OVERRIDE: Este parâmetro definido como TRUE, permite sobrescrever qualquer tipo de autenticação de usuários via sistema operacional.
Agora com o arquivo sqlnet.ora já configurado, é hora criar o seu "wallet", para isso usamos o programa "mkstore" com as opções "-wrl" + [o diretório informado no "sqlnet.ora"] + a opção –create. Ao digitar este comando será solicitado que você informe uma senha para gerenciar seu "wallet", essa senha deve ter no mínimo 8 caracteres contendo letras e números.
Repare que após a criação do seu "wallet" dois arquivos serão criados, conforme a imagem abaixo, esses arquivos são o seu "wallet", ou melhor, a sua carteira!
Com o seu "wallet" (Carteira) criado, agora é hora de colocar dentro dele os certificados (credentials) para que você acesse os seus bancos de dados, uma "credential" é definida por três elementos, um login, uma senha e um alias valido de seu TNSNAMES.ora, para criar a credential, usamos o mesmo programa que criamos o "wallet" o "mkstore", passando então os parâmetros necessários ("-wrl", o caminho do wallet e "-createCredential"), Em nosso exemplo vamos criar uma "credential" para um banco de dados chamado "ORCL" com o usuário "HR" e senha "oracle", repare também que será solicitada a senha de gerenciamento do "wallet". Veja imagem.
Após a criação de seu "wallet" e a sua "credential", você pode também consulta-los com o "mkstore" mais o parâmetro "listCredential".
Tudo pronto! Agora você pode fazer um teste, ao invés de se conectar no banco de dados com o SQL*Plus (ou qualquer outra ferramenta) passando login e senha, você precisa informar somente o alias de seu TNSNAMES, pois o resto o "wallet" resolve para você.
É isso aí, espero ter ajudado, agora não perca tempo, pegue aquele monte de scripts que você tem aí e ajuste-os trabalhando com um "wallet", com certeza você vai eliminar um grande GAP de segurança em seu ambiente.
Tags: credentialrdbmstnsnameswallet
por Sergio Willians · Published dezembro 5, 2019
Próximo história 12c – Approximate Count Distinct
História anterior Database Point-In-Time Recovery (DBPITR) e Tablespace Point-in-Time Recovery (TSPITR) na prática com o RMAN