Você está na página 1de 20

Resposta Completa / Modelo de Entregáveis da Tarefa 01 – Bootamp DBA

O texto da tarefa foi :

“Tarefa 01 – O inicio : a Empresa DIA-A-DIA acabou de abrir as portas, para Suportar as suas Aplicações
precisa de um banco Oracle – para Atender á solicitação, instalar o Virtualbox, criar um ele uma VM com
Oracle Enterprise Linux 7.9 (o mais recente da família 7.x) , e nessa VM instalar o RDBMS Oracle XE 18c.
O Objetivo final é que haja nesse Ambiente um Container Database (que pode ser o default XE que a
instação vai criar) , mas esse CDB será reservado apenas pára tarefas administrativas, a Aplicação vai
consumir/conectar no Pluggable database chamado DB_APP que deverá ser controlado/gerenciado pelo
Container Database.
No database DB_APP, criar um schema APP_OWNER para ser o schema aonde residirão os objetos da
Aplicação todos, criar a(s) tablespace(s) necessárias para armazenar os futuros objetos da Aplicação (em
princípio haverão apenas tabelas e índices como objetos armazenáveis em disco fora da tablespace
SYSTEM), criar um usuário DB_ADMIN para gerenciar o banco (com privs de CREATE SESSION, RESOURCE,
SELECT ANY DICTIONARY, SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,
RESOURCE e SCHEDULER_ADMIN, bem como de SELECT em qualquer V$ e/ou view DBA_xxxx).
Criar também os usuários de banco (E os objetos de banco que futuramente possam ajudar na separação
de privilégios de cada usuário em cada setor : HUGUINHO, ZEZINHO e LUISINHO do setor CONTABILIDADE,
os usuários DONALD e PENINHA (do setor VENDAS/COMERCIAL) e o usuário PATINHAS, que será o gerente-
geral e portanto no futuro terá acesso a qualquer objeto da Aplicação.”

 Para atender à essa tarefa, a primeira necessidade é baixar (em https://www.virtualbox.org/ ou em


https://www.oracle.com/br/virtualization/technologies/vm/downloads/virtualbox-downloads.html )
o software de virtualização Virtualbox mais apropriado à máquina física e ao SO , e depois instalar o
software : não há segredo nisso, única observação é que se o SO da máquina física for Windows, a
instalação deve ser feita logado com usuário Administrador local (não admin de rede, não admin de
domínio, não usuário de rede, mas Usuário local que tenha o privilégio de Adminsitrador local).
 Próximo passo, criar uma máquina virtual , usando o .ISO do Oracle Linux 7.9 previamente indicado
como imagem de DVD na máquina virtual : para isso, ao criar a nova VM no menu Máquina/Novo :

Na tela informar um nome pra VM :


Na próxima tela (a não ser que a máquina física tenha menos de 8 GB de RAM) conceder 4 GB para a
VM :

Avançando no Assistente , criar um disco rígido virtual de 30 GB (para não haver falta de espaço) , a
máquina será criada . Selecionando a VM recém-criada, no menu de Configuração, no item Geral aba
Avançado informar :
No item Sistema, aba processador, indicar 4 processadores virtuais, na aba Monitor indicar o máximo
possível de memória de Vídeo, e no item Armazenamento indicar o .ISO como imagem para o DVD
virtual :

No item Rede, desabilitar todas as interfaces de rede (serão habilitadas depois) , e se desejado (para
facilitar transferências de/para máquina física x VM) indicar no item Pastas compartilhadas uma pasta
da máquina física que poderá ser acessada pela VM.
Ativando a VM com duplo-click no nome dela, será exibida a tela inicial do .ISO Linux, escolher a
primeira opção, Install . Não é obrigatório, mas é recomendado na tela de escolha de Linguagem a ser
usada na instalação escolher Português brasileiro, para que assim o SO seja automaticamente
configurado para permitir e exibir Acentos :

Ao clicar no botão Continuar, a tela de resumo de instalação será exibida :


O único ponto Exigido é que na “Seleção de Software” seja escolhida a opção de “Servidor com GUI” ,
com ‘Bibliotecas de Compatibilidade’ e ‘Ferramentas de desenvolvimento’ como pacotes mínimos,
opcionalmente sendo útil selecionar também as ‘ferramentas de Administração’ :

No item “Sistema” aceitar os defaults para partição de disco e , Opcionalmente, pode ser desativado
Kdump para poupar espaço e memória RAM .
Na tela seguinte, será solicitado senha do root user E sugerido a criação de um usuário administrativo
pessoal, recomenda-se clickar nas duas opções e informar os dados requeridos, seguindo tudo default
daí pra frente até o final da instalação.Quando a instalação terminar, será solicitado reboot, antes
disso desmontar a imagem de DVD no Virtualbox, menu Configurações da Vm item “Storage”.
É totalmente Opcional, mas é Muito Recomendado que , depois do reboot e da finalização da
configuração que acontecerá após o login , que se faça o desligamento da máquina Linux clickando no
ícone de Energia no topo da tela e escolhendo o botão de desligamento :

Com a VM desligada, no menu Configuração item rede, criar um adaptador de rede do tipo host-only
e um adaptador do tipo Bridge :
 Iniciada novamente a VM , antes de proceder à instalação do Oracle XE 18c que já foi previamente
baixado em https://www.oracle.com/br/database/technologies/xe-downloads.html opcionalmente
se pode montar um CD virtual com a imagem do software de Adicionais de Convidados :

Isso é útil especialmente se o Sistema Operacional da máquina física for Windows, pois com esse
software instalado, se obtém drivers de I/O melhores, resoluções de tela maiores no Linux, e
melhorias do tipo.
 Instalação do software Oracle XE 18c : logado no console gráfico com o usuário administrador que foi
criado, se necessário Ativar as interfaces de rede no mesmo ícone de rede anteriormente indicado,
abrir prompt de comando :
Nesse prompt de comando, passar para o usuário root com su - :

E o restante da instalação será feito como root nesse prompt de comando, executando os 3
comandos indicados em https://jlc1967.wordpress.com/2021/09/05/instalacao-oracle-xe-18c-sob-
oracle-linux-7/ , a saber :

yum install -y oracle-database-preinstall-18c


yum -y localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm

(em havendo já sido transferido para a pasta atual o arquivo .rpm de instalação, previamente
baixado) e, depois dos dois anteriores:
/etc/init.d/oracle-xe-18c configure
Este último .rpm é que cuidará da criação do database Oracle e do usuário Linux chamado oracle.

Configurações Extras (Opcionais mas muito Úteis) no Linux e no sqlplus/database Oracle

Não será usado aqui no Bootcamp, mas há algumas utilidades de interesse presentes no Oracle
Enterprise Manager Database Express, a versão ultra-reduzida do Oracle Enteprise Manager que é
instalada junto com o Oracle XE – porém, como ele usa o plugin Flash Player, cujo Suporte foi encerrado
nos principais browsers de Internet, quem se interessar pelo OEM DBEXPRESS , pode baixar qualquer
browser que ainda suporte Flash, como o OPERA (basta fazer um Ajuste nas configurações) ou o
Centbrowser
o usuário Linux chamado oracle (que foi criado pelo instalador) por segurança vem Bloqueado, se for
desejado o desbloquear, para que se possa logar diretamente com ele, nas Configurações do sistema
(acessando pelo menu Aplicativos, item Sistema) :

No sub-menu Detalhes, temos a opção Usuários :


Onde qualquer usuário (afora o super-usuário root) pode ser desbloqueado, bloqueado, etc.

tanto o sqlplus quanto o rman (que são ferramentas interativas do Oracle) não possuem no Linux a
funcionalidade de recuperar o comando anteriormente executado teclando seta para cima no
teclado: para se adicionar essa funcionalidade, baixar o utilitário rlwrap (como root) :

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm


yum install rlwrap -y

E depois adicionar ALIAS para executar o comando, vide próximo item.

- o shell de comandos default carregado ao abrir um prompt de comandos é o bash shell , para
Automatizar qualquer Ação desejada para quando um usuário, basta editar o arquivo
/home/nomedousuario/.bash_profile , alterei o meu para que seja criada a variável NLS_LANG e que
seja executado o ORAENV :
[jchiappa@localhost ~]$ su -
Senha:
Último login:Qui Set 16 22:24:47 -03 2021em pts/0
[root@localhost ~]# cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions


if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs


PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

# Chamar oraenv
ORACLE_SID=XE
ORAENV_ASK=NO
. oraenv

#criar variável NLS_LANG, que no XE tem que ser sempre com Characterset UTF
export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8"

# criar variável para formato de datas dentro do banco


export NLS_DATE_FORMAT="DD/MM/YYYY HH24:MI:SS"

#criar ALIASes para chamar sqlplus e rman com funcionalidades de teclado


alias rlsqlplus='rlwrap sqlplus'
alias rlrman='rlwrap rman'

[root@localhost ~]#

a ferramenta default para conexão ao banco é o sqlplus , e ele possui diversas capacidades de
configuração/automação no arquivo $ORACLE_HOME/sqlplus/admin/glogin.sql : aqui ela foi
configurada para formatar algumas colunas que os DBAs consultam frequentemente, e para mostrar
no prompt do sqlplus em qual database/container a sessão está logada :

[oracle@localhost ~]$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql


--
-- Copyright (c) 1988, 2005, Oracle. All Rights Reserved.
--
-- NAME
-- glogin.sql
--
-- DESCRIPTION
-- SQL*Plus global login "site profile" file
--
-- Add any SQL*Plus commands here that are to be executed when a
-- user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
-- This script is automatically run
--
-- Used for the SHOW ERRORS command
column LINE/COL format A8
column ERROR format A65 WORD_WRAPPED

-- Used for the SHOW SGA command


column name_col_plus_show_sga format a24
-- Defaults for SET AUTOTRACE EXPLAIN report
column id_plus_exp format 990 heading i
column parent_id_plus_exp format 990 heading p
column plan_plus_exp format a60
column object_node_plus_exp format a8
column other_tag_plus_exp format a29
column other_plus_exp format a44

-- definições extras
SET SERVEROUTPUT ON SIZE UNLIMITED
SET LINES 180 PAGES 50000 FEED ON
SET LONG 1000000
SET TRIMSPOOL ON
SET TAB OFF
-- colunas extras que sempre uso
column host format a30
column file_name format a50
column member format a60
column name format a33
column column_name format a30
column object_name format a30
column file_name format a68
column what format a30 word_wrapped
column parameters format a15 trunc
column data_type format a15
column owner format a16
column username format a24
column host format a12
column db_link format a23
COLUMN message format a100
COLUMN units format a15
COLUMN target format a48
COLUMN opname format a35
column segment_name format a35
column external_name format a20
column sum(bytes) format 999G999G999G999G999G999
column result format 999G999G999G999G999G999
column resultado format 999G999G999G999G999G999
column sid format 999
column serial# format 99999
column audsid format 9999999
column user# format 999
column def_parameters format A20
column comments format a100
column min(partition_name) format a14
column max(partition_name) format a14
column bytes format 99G999G999G999G990
-- set term on para voltar ao normal
set term off
column where new_value CONT format a50
SELECT 'CNTNR='||SYS_CONTEXT('USERENV','CON_NAME')
"WHERE"
FROM DUAL;
-- definir o prompt
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER::&&CONT> "
set term on
define _EDITOR=vi
column name format a33

[oracle@localhost ~]$

Vide na config anterior que o LINESIZE (tamanho da linha, abreviado no script apenas para LINES, isso
é aceito) no sqlplus foi definido para 1000 : por causa disso, comandos como DESCRIBE (que pode ser
abreviado para DESC, serve para mostrar a estrutura de um objeto) ficam desconfigurados na tela, a
solução é criar (no mesmo local onde o sqlplus vai ser usado) um arquivo desc.sql , que recebe um
argumento e será executado no logar do comando DESC, assim :

[oracle@localhost ~]$ cat desc.sql


set lines 80
desc &1
set lines 180

[oracle@localhost ~]$

 Configurações externas feitas, dando prosseguimento à tarefa, o primeiro passo será criar o pluggable
database DB_APP exigido : antes do procedimento, consultaremos a situação corrente :

SYS@XE::CNTNR=CDB$ROOT> select f.CON_ID, d.name, f.tablespace_name, f.file_name, f.status


2* from cdb_data_files f, v$pdbs d where f.con_id = d.con_id order by 1,2,3,4;

CON_ID NAME TABLESPACE_NAME


FILE_NAME STATUS
------- --------------------------------- ------------------------------ --
------------------------------------------------ ---------
3 XEPDB1 SYSAUX
/opt/oracle/oradata/XE/XEPDB1/sysaux01.dbf AVAILABLE
3 XEPDB1 SYSTEM
/opt/oracle/oradata/XE/XEPDB1/system01.dbf AVAILABLE
3 XEPDB1 UNDOTBS1
/opt/oracle/oradata/XE/XEPDB1/undotbs01.dbf AVAILABLE
3 XEPDB1 USERS
/opt/oracle/oradata/XE/XEPDB1/users01.dbf AVAILABLE

4 linhas selecionadas.

SYS@XE::CNTNR=CDB$ROOT>
Não é obrigatório, mas para melhor organização, criar uma nova pasta DB_APP abaixo da pasta
principal XE – poderia ser feito no prompt de comando mas será feito de dentro do sqlplus apenas
para demonstrar :
SYS@XE::CNTNR=CDB$ROOT> host mkdir /opt/oracle/oradata/XE/DB_APP

SYS@XE::CNTNR=CDB$ROOT> host ls -ld /opt/oracle/oradata/XE/DB_APP


drwxr-xr-x 2 oracle oinstall 6 Set 17 18:12 /opt/oracle/oradata/XE/DB_APP

SYS@XE::CNTNR=CDB$ROOT>

(Há Diversas possibilidades para se criar um novo pluggable database, entre elas GUis como ORACLE
ENTERPRISE MANAGER, ORACLE SQL DEVELOPER, etc, mas no exemplo será usado o sqlplus) :
SYS@XE::CNTNR=CDB$ROOT> ALTER SESSION SET
PDB_FILE_NAME_CONVERT='/opt/oracle/oradata/XE/pdbseed/', '/opt/oracle/oradata/XE/DB_APP/';

Sessão alterada.

SYS@XE::CNTNR=CDB$ROOT> create pluggable database DB_APP admin user DB_APP_ADMIN


identified by db_app_admin;

Banco de dados plugável criado.

SYS@XE::CNTNR=CDB$ROOT> select con_id, name, open_mode from v$pdbs;

CON_ID NAME OPEN_MODE


------- --------------------------------- ----------
2 PDB$SEED READ ONLY
3 XEPDB1 READ WRITE
5 DB_APP MOUNTED

3 linhas selecionadas.

SYS@XE::CNTNR=CDB$ROOT> alter pluggable database DB_APP open;

Banco de dados plugável alterado.

SYS@XE::CNTNR=CDB$ROOT> select con_id, name, open_mode from v$pdbs;

CON_ID NAME OPEN_MODE


------- --------------------------------- ----------
2 PDB$SEED READ ONLY
3 XEPDB1 READ WRITE
5 DB_APP READ WRITE

3 linhas selecionadas.

SYS@XE::CNTNR=CDB$ROOT> select f.CON_ID, d.name, f.tablespace_name, f.file_name, f.status


2 from cdb_data_files f, v$pdbs d where f.con_id = d.con_id order by 1,2,3,4;
CON_ID NAME TABLESPACE_NAME FILE_NAME
STATUS
------- --------------------------------- ------------------------------ -------------------------------------------------- ---------
3 XEPDB1 SYSAUX /opt/oracle/oradata/XE/XEPDB1/sysaux01.dbf
AVAILABLE
3 XEPDB1 SYSTEM /opt/oracle/oradata/XE/XEPDB1/system01.dbf
AVAILABLE
3 XEPDB1 UNDOTBS1 /opt/oracle/oradata/XE/XEPDB1/undotbs01.dbf
AVAILABLE
3 XEPDB1 USERS /opt/oracle/oradata/XE/XEPDB1/users01.dbf
AVAILABLE
5 DB_APP SYSAUX /opt/oracle/oradata/XE/DB_APP/sysaux01.dbf
AVAILABLE
5 DB_APP SYSTEM /opt/oracle/oradata/XE/DB_APP/system01.dbf
AVAILABLE
5 DB_APP UNDOTBS1 /opt/oracle/oradata/XE/DB_APP/undotbs01.dbf
AVAILABLE

7 linhas selecionadas.

SYS@XE::CNTNR=CDB$ROOT>

- para tornar permanente o STATUS dos pluggable databases, executado :

SYS@XE::CNTNR=CDB$ROOT> alter pluggable database ALL save state;

Banco de dados plugável alterado.

SYS@XE::CNTNR=CDB$ROOT>

 Antes de executar a porção final da tarefa, configurar o ambiente para que a instância se inicie
automaticamente, que o novo database DB_APP seja acessível por TNS e que o default, se não for
informado @entradatns , seja conexão à esse database DB_APP :

oracle@localhost ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora


# tnsnames.ora Network Configuration File:
/opt/oracle/product/18c/dbhomeXE/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
DB_APP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = db_app)
)
)

LISTENER_XE =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

[oracle@localhost ~]$ tnsping db_app

TNS Ping Utility for Linux: Version 18.0.0.0.0 - Production on 17-SET-2021 19:03:55

Copyright (c) 1997, 2018, Oracle. All rights reserved.

Arquivos de parâmetros usados:


/opt/oracle/product/18c/dbhomeXE/network/admin/sqlnet.ora

Usado o adaptador TNSNAMES para resolver o apelido


Tentativa de contatar (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT =
1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db_app)))
OK (0 ms)

[oracle@localhost ~]$ cat .bash_profile


# .bash_profile

# Get the aliases and functions


if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

# Chamar oraenv
ORACLE_SID=XE
ORAENV_ASK=NO
. oraenv
#criar variável NLS_LANG, que no XE tem que ser sempre com Characterset UTF
export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8"

# criar variável para formato de datas dentro do banco


export NLS_DATE_FORMAT="DD/MM/YYYY HH24:MI:SS"

#criar ALIASes para chamar sqlplus e rman com funcionalidades de teclado


alias rlsqlplus='rlwrap sqlplus'
alias rlrman='rlwrap rman'

#TWO_TASK para conexão default ao database DB_APP


export TWO_TASK=db_app

[oracle@localhost ~]$ sqlplus system

SQL*Plus: Release 18.0.0.0.0 - Production on Sex Set 17 19:05:24 2021


Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Informe a senha:
Horário do último log-in bem-sucedido: Sex Set 17 2021 16:55:14 -03:00

Conectado a:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SYSTEM@XE::CNTNR=CDB$ROOT> exit
Desconectado de Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
[oracle@localhost ~]$ export TWO_TASK=db_app
[oracle@localhost ~]$ echo $TWO_TASK
db_app
[oracle@localhost ~]$ sqlplus system

SQL*Plus: Release 18.0.0.0.0 - Production on Sex Set 17 19:05:57 2021


Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Informe a senha:
Horário do último log-in bem-sucedido: Sex Set 17 2021 19:05:26 -03:00

Conectado a:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SYSTEM@db_app::CNTNR=DB_APP> exit
Desconectado de Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
[oracle@localhost ~]$~

 Como root, habilitar autostart :


[oracle@localhost ~]$ su - root
Senha:
Último login:Sex Set 17 17:01:29 -03 2021em pts/0
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable oracle-xe-18c
[root@localhost ~]# chkconfig --level 6 oracle-xe-18c on

[root@localhost ~]# cat /etc/oratab


#

# This file is used by ORACLE utilities. It is created by root.sh


# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.

# A colon, ':', is used as the field terminator. A new line terminates


# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third field indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
XE:/opt/oracle/product/18c/dbhomeXE:Y

[root@localhost ~]#

 Criação das tablespaces, usuários e objetos solicitados na tarefa :


[oracle@localhost ~]$ sqlplus system/oracle@db_app

SQL*Plus: Release 18.0.0.0.0 - Production on Sex Set 17 20:21:51 2021


Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Horário do último log-in bem-sucedido: Sex Set 17 2021 19:05:59 -03:00


Conectado a:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SYSTEM@db_app::CNTNR=DB_APP> create user DB_ADMIN identified by db_admin;


SYSTEM@db_app::CNTNR=DB_APP> create user APP_OWNER identified by app_owner;
SYSTEM@db_app::CNTNR=DB_APP> create tablespace TS_APP_DADOS datafile
'/opt/oracle/oradata/XE/DB_APP/ts_app_dados_01.dbf' size 1G autoextend on;
SYSTEM@db_app::CNTNR=DB_APP> create tablespace TS_APP_INDEX datafile
'/opt/oracle/oradata/XE/DB_APP/ts_app_index_01.dbf' size 1G autoextend on;

SYSTEM@db_app::CNTNR=DB_APP> ALTER USER APP_OWNER DEFAULT TABLESPACE


TS_APP_DADOS;
SYSTEM@db_app::CNTNR=DB_APP> alter user APP_OWNER quota unlimited on TS_APP_DADOS;
SYSTEM@db_app::CNTNR=DB_APP> alter user APP_OWNER quota unlimited on TS_APP_INDEX;

SYSTEM@db_app::CNTNR=DB_APP> GRANT CREATE SESSION, RESOURCE, SELECT ANY DICTIONARY,


SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SCHEDULER_ADMIN TO DB_ADMIN;
SYSTEM@db_app::CNTNR=DB_APP> GRANT SELECT ON DBA_TABLES TO DB_ADMIN;

SYSTEM@db_app::CNTNR=DB_APP> create user HUGUINHO identified by huginho;


SYSTEM@db_app::CNTNR=DB_APP> create user ZEZINHO identified by zezinho;
SYSTEM@db_app::CNTNR=DB_APP> create user LUISINHO identified by luisinho;
SYSTEM@db_app::CNTNR=DB_APP> grant create session to HUGUINHO;
SYSTEM@db_app::CNTNR=DB_APP> grant create session to ZEZINHO;
SYSTEM@db_app::CNTNR=DB_APP> grant create session to LUISINHO;

SYSTEM@db_app::CNTNR=DB_APP> create role CONTABILIDADE;


SYSTEM@db_app::CNTNR=DB_APP> grant CONTABILIDADE to HUGUINHO;
SYSTEM@db_app::CNTNR=DB_APP> grant CONTABILIDADE to ZEZINHO;
SYSTEM@db_app::CNTNR=DB_APP> grant CONTABILIDADE to LUISINHO;

SYSTEM@db_app::CNTNR=DB_APP> create user DONALD identified by donald;


SYSTEM@db_app::CNTNR=DB_APP> create user PENINHA identified by peninha;
SYSTEM@db_app::CNTNR=DB_APP> grant create session to DONALD;
SYSTEM@db_app::CNTNR=DB_APP> grant create session to PENINHA;

SYSTEM@db_app::CNTNR=DB_APP> create role VENDAS;


SYSTEM@db_app::CNTNR=DB_APP> grant vendas to DONALD;
SYSTEM@db_app::CNTNR=DB_APP> grant vendas to PENINHA;

SYSTEM@db_app::CNTNR=DB_APP> create user PATINHAS identified by patinhas;


SYSTEM@db_app::CNTNR=DB_APP> grant create session to patinhas;
SYSTEM@db_app::CNTNR=DB_APP> create role gerente;
SYSTEM@db_app::CNTNR=DB_APP> grant gerente to patinhas;
SYSTEM@db_app::CNTNR=DB_APP> GRANT CREATE SESSION, RESOURCE, SELECT ANY DICTIONARY,
SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SCHEDULER_ADMIN TO DB_ADMIN;
SYSTEM@db_app::CNTNR=DB_APP> GRANT SELECT ON DBA_TABLES TO DB_ADMIN;

SYSTEM@db_app::CNTNR=DB_APP> grant create session to patinhas;


SYSTEM@db_app::CNTNR=DB_APP> grant gerente to patinhas;

Você também pode gostar