Como desbloquear Usuário Schema HR (Schema de Exemplo) no Oracle Database 18c

Neste tutorial e vídeo aula, aprenderemos como desbloquear o usuário / Schema HR no Oracle Database 18c, 12c, 11g e versões anteriores.

O HR é um esquema de uma aplicação de Recursos Humanos, criado pela Oracle, que tem como objetivo principal armazenar os registros de empregados de uma organização. 

Este schema é ideal para estudar Oracle e é bastante utilizado para demonstrar exemplos, exercícios de cursos e sites da internet.

Como ativar usuário HR no Banco de Dados Oracle



Vídeo Aula : Liberação Usuário HR no Oracle Database

Nesta vídeo aula, apresentamos todo processo para liberar o usuário HR no Banco de dados Oracle, tanto para as versões 11G e anteriores quanto para o Oracle 12c e Posteriores.

Conteúdo desta vídeo aula

🕐 Clique nos links de marca de tempo abaixo para assistir o conteúdo de interesse :

⏺ Liberação Usuário HR Oracle 11g e Versões anteriores : 1:55

⏺ Liberação Usuário HR Oracle 12c e versões posteriores : 2:33

⏺ CDB – Containers Database x PDBs Pluggable Databases : 3:29

⏺ Etapas liberação usuário HR no Oracle 18c : 3:58

⏺ Etapa 1 : Descoberta do ID do contêiner : 4:42

⏺ Etapa 2 : Descoberta do nome do serviço / Service Name : 6:22

⏺ Etapa 3: Criação de entrada no arquivo “TNSNAMES.ora” : 7:13

⏺ Etapa 4 : Alternar do CDB para o PDB : 9:08

⏺ Etapa 5 : Desbloquear o usuário de HR : 10:05

Habilitação do Schema HR Oracle.

Os schemas / usuários de amostra por padrão são bloqueados na instalação do banco de dados Oracle e para utiliza-los é necessário desbloqueá-los como veremos a seguir

Liberação Schema HR Oracle 11g e versões anteriores 

Nas versões 11c do Oracle e anteriores, para ativar o usuário HR, bastava se conectar no banco via SQLPLUS ou SQL Developer com os usuários sys ou system e executar o comando:

ALTER USER hr IDENTIFIED BY sua senha ACCOUNT UNLOCK;

Onde sua senha seria uma senha a ser escolhida por você.

Rodando o comando acima no Oracle 11g e versões anteriores o esquema HR já estará liberado e pronto para uso.

Porém a partir do Oracle 12c, novas funcionalidades foram lançadas na arquitetura deste banco de dados. 

Liberação Usuário HR Oracle 12c e versões posteriores

Para efetuar a liberação do HR no Oracle 12c e versões posteriores é necessário entender o conceito da nova arquitetura Oracle Multitenant

Nesta tutorial, utilizamos a versão 18c, mas a partir da versão 12c já temos esta nova arquitetura implementada.

A partir desta versão, foram incluídas as funcionalidade de CDB – Containers Database que é uma espécie de banco de dados principal ou raiz que é capaz de abrigar um ou mais banco de dados plugáveis (PDBs)
Os PDBs (Pluggable Databases) ou banco de dados plugável é um banco de dados de usuário ou aplicação que pode ser clonado ou transferido de um CDB para outro.

Nova arquitetura Oracle Multitenant : CDB – Containers Database x PDBs – Pluggable Databases

Fazendo uma analogia da arquitetura Oracle Multitenant com um navio de carga.

Imagine que o navio seria o CDB – Containers Database e as cargas ou contêiners de cargas seriam os PDBs Pluggable Databases que podem ser clonados ou transferidos de um CDB para outro CDB.

Oracle Multitenant : CDB – Containers Database x PDBs – Pluggable Databases

Um CDB abriga diversos PDBs que podem ter administradores distintos.

Referência: https://docs.oracle.com/database/121/CNCPT/cdbovrvw.htm#CNCPT89242



Etapas liberação usuário HR no Oracle 18c

Etapas para desbloqueio usuário HR no Oracle

Agora que temos o conhecimento teórico, podemos seguir para desbloquear o usuário HR no Oracle Database 18c.

O Procedimento também válido para o Oracle 12c

Basicamente a liberação do Schema no Oracle é um processo de cinco etapas: 

  1. Descoberta do ID do contêiner.
  2. Descoberta do nome do serviço / Service Name.
  3. Criação de uma entrada no arquivo “TNSNAMES.ora”.
  4. Alternar do CDB para o PDB.
  5. Desbloquear o usuário de HR

A seguir abordaremos cada uma dessas etapas em detalhes.

Desbloqueio do Schema HR no Oracle 18c

Etapa 1 : Descoberta do ID do contêiner.

Para desbloquear o schema HR, precisamos descobrir o nome do serviço de banco de dados PDB que contém os esquemas de amostra.

Para isso, o primeiro passo é descobrir o ID do contêiner desse banco de dados plugável, anotá-lo para depois descobrirmos o nome do serviço na segunda etapa.

Para isso, vamos sqlplus usando o usuário sysdba.

Sqlplus / as sysdba

Depois de conectar-se ao banco de dados com sucesso usando o usuário sys, é possível consultar a dynamic performance view  v$PDBS para saber os nomes e os IDs dos contêiner dos bancos de dados plugáveis ​​criados dentro do contêiner database ao qual você está conectado no momento. Para isso usamos a seguinte query:

SELECT name, con_id FROM v$pdbs;

A saída do select acima mostrará os nomes e os IDs de contêiner de todos os bancos de dados plugáveis ​​criados dentro do banco de dados de contêineres CBD$ROOT.

Nesta consulta anote o nome (name) e o ID do contêiner(con_id)  do banco de dados plugável padrão.

O banco de dados plugável padrão é o que criamos durante a instalação do oracle 18c nas vídeo aulas:

Como instalar o Oracle Database 18c no Windows

ou nesta publicação

Instalação Oracle Database 18c XE Linux

Geralmente, o nome desse banco de dados plugável padrão no Oracle Database 18c é XEPDB1

O que é esse banco plugável PDB$SEED?

PDB$SEED é um banco de dados plugável modelo inicial fornecido pelo sistema para criar PDBs.
Eu sugiro que você não mexa com isso.

Referência: https://docs.oracle.com/database/121/CNCPT/cdbovrvw.htm#CNCPT89242

PDB descoberto em nosso Laboratório

Em nossa vídeo aula e exemplo, o nome do banco de dados plugável padrão em que os esquemas de amostra estão localizados é XEPDB1 e seu con_id correspondente é 3.



Etapa 2 : Descoberta do nome do serviço / Service Name

Agora, utilizando o ID do contêiner do banco de dados plugável XEPDB1, descobriremos seu nome de serviço.
Geralmente, o banco de dados plugável e seu Service Name (Nome do Serviço) compartilham o mesmo nome, mas é uma boa prática verificar isso antes.

Para descobrir o nome do serviço correspondente ao nosso banco de dados plugável, Vamos consultar dynamic performance view v$active_services.

SELECT name as “Service Name” FROM v$active_services WHERE con_id =3;

Usando a consulta acima, recuperamos o nome do serviço correspondente ao ID do contêiner  = 3.
Este ID do contêiner é correspondente ao PDB padrão XEPDB1 que possui todos os esquemas de amostra.

O Service Name para o banco de dados plugável XEPDB1 é xepdb1.

Etapa 3: Criação de entrada no arquivo “TNSNAMES.ora”

Agora utilizando o nome do nosso PDB padrão e seu nome serviço correspondente, precisamos criar uma entrada para o nosso listener.
Existem duas maneiras de fazer isso: 1 utilizando o utilitário NETCA ou manualmente.

A criação manual de uma entrada no arquivo TNSNAMES.ora é a mais rápida e simples e será a que vamos seguir.

Para criar uma entrada para o listener no arquivo TNSNAMES.ora, primeiro você precisa localizá-lo. 

O tnsnames.ora é um arquivo de configuração de rede, portanto, você o encontrará na pasta “network”, que por sua vez está localizada na DB_HOME do banco Oracle.

1- Local do arquivo TNSNAMES.ora 

% DB_Home%\network\ admin\tnsnames.ora

Depois de localizar o arquivo tnsnames.ora, crie uma entrada no final do arquivo e salve-a.
A entrada será mais ou menos assim.

XEPDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.128)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xepdb1)
)
)

2 – Editar o arquivo e colocar o service name conforme dados obtidos em nossas querys anteriores

3 – Reiniciar o Listener

Para ativar as novas alterações que acabamos de fazer no arquivo tnsnames.ora, precisamos reiniciar o Listener.

Você pode fazer isso escrevendo este comando abaixo fornecido no prompt de comando. Apenas certifique-se de iniciar seu prompt de comando com privilégios administrativos

lsnrctl reload

Depois para verificarmos se a entrada que fizemos no arquivo tnsnames.ora esta em uso, utilizamos o comando:

lsnrctl status 

Caso tenha dúvidas sobre como acessar o prompt de comando com privilégios administrativos, parte desta outra vídeo aula mostra como fazer isso:

Como desativar o Controle de Contas de Usuário (UAC)



Etapa 4 : Alternar do CDB para o PDB

Para esclarecer nosso entendimento até agora, vamos resumir como está estruturado essa nova arquitetura multitenant:

1 – Todos os usuários de alto privilégio, como sys, são colocados dentro de um banco de dados de contêiner

2-  Todos os esquemas de amostra são colocados dentro do banco de dados plugável padrão

3 – O que significa que, para desbloqueá-los, precisamos para alternar do banco de dados do contêiner para o banco de dados plugável.

Para alternar do CDB CDB$ROOT para o PDB XEPDB1, podemos usar o comando ALTER SESSION. 

Acessar sqlplus:

Sqlplus / as sysdba

utilizar o comando no SQLPLUS: 

ALTER SESSION SET container = xepdb1;

Etapa 5 : Desbloquear o usuário de HR

Agora com sessão no banco pdb xepdb1 podemos desbloquear o usuário hr

No entanto, você pode seguir estas etapas para desbloquear qualquer outro usuário de exemplo / amostra que desejar.

Verificar se o pdb padrão está aberto

Agora vamos verificar se o pdb padrão está aberto, pois para executar qualquer DDL ou DML, o banco de dados precisa estar no modo Open (read Write). 

Pois pode ocorrer do mesmo estar em estado de MOUNT.

Para verificar o modo de um banco de dados PDB, usamos a seguinte query:

SELECT name, open_mode FROM v$pdbs;

Se o banco estiver montado ou “MOUNTED“  é preciso abri-lo com:

ALTER PLUGGABLE DATABASE open;

Na execução bem-sucedida, essa instrução DDL abrirá seu PDB padrão.

Desbloqueando o Usuário HR

Depois de executar todas as etapas acima e configurar seu banco de dados corretamente, você estará pronto para desbloquear qualquer usuário de exemplo ou amostra que desejar. 

Em nosso caso, Vamos desbloquear o usuário de HR.
O comando utilizado para isso será:

ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;



Acessando o Schema HR

No Oracle você consegue definir o serviço ao qual você vai se conectar com o caractere @ seguido do nome do serviço. 

Isso não era possível nas versões anteriores do Oracle. 

No nosso caso então para se conectar ao HR é necessário o seguinte comando.

conn hr/hr @xepdb1;

Materiais e leituras que recomendamos para você:

Obrigado

Espero que este tutorial possa lhe ajudar a liberar o usuário HR seu ambiente Oracle Database 18c Express Edition (XE) no Windows e por consequência apoiá-lo em seu trabalho ou estudo do banco de dados Oracle.

Se você gostou desta publicação, compartilhe com seus amigos ou nos acompanhe pelas redes sociais.

Você pode nos ajudar a criar mais conteúdos como este. Como ?

Prestigie nossos anunciantes conhecendo seus produtos e serviços.

É simples e rápido e você certamente ajuda a gente a crescer.

Obrigado e um grande abraço

Renato Sanches

Cadastre-se em nossa Newsletter de Tecnologia

Inscreva-se gratuitamente e seja o primeiro a ser notificado sobre novas atualizações sobre Tecnologia.

Posts Similares