1. Verificando se o Oracle Database Vault está habilitado ou desabilitado

Para essa verificação utilize as seguintes consultas:

SELECT PARAMETER, VALUE  FROM V$OPTION WHERE PARAMETER IN ('Oracle Label Security','Oracle Database Vault');

               PARAMETER    	VALUE
________________________ 	    ________
Oracle Label Security     		FALSE
Oracle Database Vault    		FALSE

SELECT COMP_NAME, STATUS FROM DBA_REGISTRY WHERE COMP_NAME IN ('Oracle Label Security','Oracle Database Vault');

               COMP_NAME    	STATUS
________________________ 	_________
Oracle Label Security     		VALID
Oracle Database Vault   		VALID

col DESCRIPTION format a40
set lines 900
SELECT * FROM DBA_DV_STATUS;

                  NAME    	 	STATUS
______________________    	_________________
DV_APP_PROTECTION         	NOT CONFIGURED
DV_CONFIGURE_STATUS    	    FALSE
DV_ENABLE_STATUS            FALSE

SELECT * FROM DBA_OLS_STATUS;

                   	NAME     STATUS                              DESCRIPTION
__________________________ _________ ________________________________________
OLS_CONFIGURE_STATUS        FALSE     Determines if OLS is configured
OLS_DIRECTORY_STATUS        FALSE     Determines if OID is enabled with OLS
OLS_ENABLE_STATUS           FALSE     Determines if OLS is enabled


SELECT S.NAME, STATUS, C.NAME FROM V$CONTAINERS C INNER JOIN CDB_DV_STATUS S ON S.CON_ID=C.CON_ID ORDER BY 3;

                  NAME            		STATUS      		NAME
__________________________ 	______________________	____________
DV_APP_PROTECTION      	    NOT CONFIGURED    		CDB$ROOT
DV_CONFIGURE_STATUS    	    FALSE             		CDB$ROOT
DV_ENABLE_STATUS       	    FALSE             		CDB$ROOT
DV_APP_PROTECTION      	    NOT CONFIGURED    		PROD
DV_ENABLE_STATUS       	    FALSE             		PROD
DV_CONFIGURE_STATUS    	    FALSE             		PROD
1.1 Verificar compatibilidade:
SHOW PDBS;
ALTER SESSION SET CONTAINER=PROD;
SELECT * FROM DBA_DV_STATUS;

                  NAME 	    	 	STATUS
______________________ 	_________________
DV_APP_PROTECTION      	NOT CONFIGURED
DV_CONFIGURE_STATUS    	FALSE
DV_ENABLE_STATUS       	FALSE
2. Criação de novos usuários que serão usadas para as contas Database Vault

Para essa tarefa será necessário criar 4 novos usuários distribuídos em dois grupos:

  • 2 usuários do tipo Owner com a role DV_OWNER, sendo 1 reserva.
  • 2 usuários do tipo Account Manager com a role DV_ACCTMGR, sendo 1 reserva.
CONNECT SYS AS SYSDBA
ALTER SESSION SET CONTAINER = CDB$ROOT;
GRANT CREATE SESSION, SET CONTAINER TO C##DBV_OWNER_ROOT    IDENTIFIED BY  CONTAINER = ALL;
GRANT CREATE SESSION, SET CONTAINER TO C##DBV_OWNER_BKP     IDENTIFIED BY  CONTAINER = ALL;

GRANT CREATE SESSION, SET CONTAINER TO C##DBV_ACCTMGR_ROOT  IDENTIFIED BY  CONTAINER = ALL;
GRANT CREATE SESSION, SET CONTAINER TO C##DBV_ACCTMGR_BKP   IDENTIFIED BY  CONTAINER = ALL;

Verificar a criação:

SELECT username, account_status from dba_users where username like 'C##DBV%';

              USERNAME    ACCOUNT_STATUS
______________________ _________________
C##DBV_OWNER_BKP       	OPEN
C##DBV_OWNER_ROOT      	OPEN
C##DBV_ACCTMGR_ROOT    	OPEN
C##DBV_ACCTMGR_BKP     	OPEN
3. Conceder permissões de sistema aos usuários criados em todos os PDBs
GRANT SELECT ANY DICTIONARY TO C##DBV_OWNER_ROOT	CONTAINER = ALL;
GRANT SELECT ANY DICTIONARY TO C##DBV_OWNER_BKP     CONTAINER = ALL;
GRANT SELECT ANY DICTIONARY TO C##DBV_ACCTMGR_ROOT  CONTAINER = ALL;
GRANT SELECT ANY DICTIONARY TO C##DBV_ACCTMGR_BKP	CONTAINER = ALL;
4. Criação e Vinculação de um novo perfil (Profile)

Execute os comandos para criação e vinculação do perfil.

CREATE PROFILE C##DV_PROFILE LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_VERIFY_FUNCTION ORA12C_VERIFY_FUNCTION PASSWORD_LOCK_TIME UNLIMITED CONTAINER=ALL;

ALTER USER C##DBV_OWNER_ROOT   	 PROFILE C##DV_PROFILE CONTAINER=ALL;
ALTER USER C##DBV_OWNER_BKP  	 PROFILE C##DV_PROFILE CONTAINER=ALL;
ALTER USER C##DBV_ACCTMGR_ROOT 	 PROFILE C##DV_PROFILE CONTAINER=ALL;
ALTER USER C##DBV_ACCTMGR_BKP	 PROFILE C##DV_PROFILE CONTAINER=ALL;
5. Configurando o Database Vault no CDB

Realize a conexão como o usuário SYS e execute o comando:

EXEC CONFIGURE_DV('C##DBV_OWNER_ROOT','C##DBV_ACCTMGR_ROOT'); 

-- COMANDO ALTERNATIVO: --
BEGIN
 CONFIGURE_DV (
   DVOWNER_UNAME         => 'C##DBV_OWNER_ROOT',
   DVACCTMGR_UNAME       => 'C##DBV_ACCTMGR_ROOT',
   FORCE_LOCAL_DVOWNER   => FALSE);
 END;
/

Observação: Neste comando, definir FORCE_LOCAL_DVOWNER como FALSE permite que os usuários comuns tenham privilégios DV_OWNER para os PDBs associados a esta raiz do CDB.

6. Recopile os objetos inválidos

Realize a conexão como o usuário SYS

@?/rdbms/admin/utlrp.sql
7. Verificando novamente o estado do Oracle Database Vault

Para essa verificação utilize as seguintes consultas:

col DESCRIPTION format a40
set lines 900
SELECT * FROM DBA_DV_STATUS;

                  NAME         	 	STATUS
________________________    _________________
DV_APP_PROTECTION         	NOT CONFIGURED
DV_CONFIGURE_STATUS    		TRUE
DV_ENABLE_STATUS            FALSE

SELECT *FROM DBA_OLS_STATUS;

                   	NAME    	STATUS                              DESCRIPTION
_____________________________ 	___________ _____________________________________
OLS_CONFIGURE_STATUS    		TRUE     	Determines if OLS is configured
OLS_DIRECTORY_STATUS    		FALSE     	Determines if OID is enabled with OLS
OLS_ENABLE_STATUS            	FALSE     	Determines if OLS is enabled

O status TRUE Informa que o recurso está habilitado.

8. Habilite o Oracle Database Vault

Para habilitar o Oracle Database Vault, (será feito com outro usuário) execute o comando:

CONNECT C##DBV_OWNER_ROOT
EXEC DBMS_MACADM.ENABLE_DV;

Observação 1: Será necessário habilitar cada um desses PDBs após concluir este procedimento.
Passo 12. Configurando o Database Vault no PDB.

Observação 2: Se cada PDB precisar ter o Database Vault habilitado neste banco de dados, use o seguinte comando:

EXEC DBMS_MACADM.ENABLE_DV (strict_mode => 'y');

Os PDBs que não possuem o Database Vault habilitado ficarão no modo restrito após o banco de dados ser reiniciado e até que o Database Vault seja habilitado no PDB:

9. Reinicie o banco de dados

Realize a conexão como o usuário SYS:

CONN / AS SYSDBA
SHUTDOWN IMMEDIATE
STARTUP
10. Verifique se o Oracle Database Vault e o Oracle Label Security estão instalados e ativados

Para essa verificação utilize o comando:

SELECT *FROM DBA_DV_STATUS;

                  NAME     		 STATUS    	CON_ID
______________________ 	_________________ 	_________
DV_APP_PROTECTION      	NOT CONFIGURED         		1
DV_CONFIGURE_STATUS    	TRUE                   		1
DV_ENABLE_STATUS       	TRUE                		1


SELECT *FROM DBA_OLS_STATUS;

                   	NAME 	   STATUS               DESCRIPTION    	   		CON_ID
___________________________  ________ _______________________________ 		_________
OLS_CONFIGURE_STATUS    	TRUE      Determines if OLS is configured              	1
OLS_DIRECTORY_STATUS    	FALSE     Determines if OID is enabled with OLS        	1
OLS_ENABLE_STATUS           TRUE      Determines if OLS is enabled                 	1
11. Conceder permissões aos usuários criados
CONNECT C##DBV_OWNER_ROOT;
GRANT DV_OWNER TO C##DBV_OWNER_BKP WITH ADMIN OPTION CONTAINER= ALL;

CONNECT C##DBV_ACCTMGR_ROOT
GRANT DV_ACCTMGR TO C##DBV_ACCTMGR_BKP WITH ADMIN OPTION CONTAINER = ALL;
12. Configurar o Database Vault para PDB

Acesse o pdb como SYS:

CONN / AS SYSDBA
ALTER SESSION SET CONTAINER=PROD;
-- COMANDO ALTERNATIVO --
CONNECT SYS@PDB_NAME
13. Verificando se o Oracle Database Vault está habilitado ou desabilitado no PDB

Execute os seguintes comando para a verificação:

SELECT *FROM CDB_DV_STATUS;

                  NAME           	STATUS		CON_ID
______________________ 	__________________ 		_________
DV_APP_PROTECTION      	NOT CONFIGURED    	        	3
DV_CONFIGURE_STATUS    	FALSE                   		3
DV_ENABLE_STATUS       	FALSE                     		3

SELECT *FROM CDB_OLS_STATUS;

                   NAME STATUS                             DESCRIPTION    	CON_ID
_______________________ _________ ________________________________________ __________
OLS_CONFIGURE_STATUS    FALSE     Determines if OLS is configured                   3
OLS_DIRECTORY_STATUS    FALSE     Determines if OID is enabled with OLS             3
OLS_ENABLE_STATUS       FALSE     Determines if OLS is enabled                      3
14. Configurando o Database Vault no PDB

Realize a conexão como o usuário: C##DBV_OWNER_ROOT e execute o comando:

Observação: o parâmetro force_local_dvoner foi omitido porque é desnecessário. Todos os usuários comuns configurados em um PDB são restritos ao escopo do PDB.

BEGIN
 CONFIGURE_DV (
   DVOWNER_UNAME         => 'C##DBV_OWNER_ROOT',
   DVACCTMGR_UNAME       => 'C##DBV_ACCTMGR_ROOT');
 END;
/

-- COMANDO ALTERNATIVO --
EXEC CONFIGURE_DV('C##DBV_OWNER_ROOT','C##DBV_ACCTMGR_ROOT'); 
15. Recopile os objetos inválidos do PDB

Realize a conexão como o usuário SYS

@?/rdbms/admin/utlrp.sql
16. Habilite o Oracle Database Vault no PDB

Para habilitar o Oracle Database Vault execute o comando:
Ainda com o usuário "C##DBV_OWNER_ROOT"

ALTER SESSION SET CONTAINER=PROD;
EXEC DBMS_MACADM.ENABLE_DV;
17. Reinicie o PDB

Realize a conexão como o usuário SYS:

CONN / AS  SYSDBA
ALTER SESSION SET CONTAINER=PROD;

ALTER PLUGGABLE DATABASE PROD CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE PROD OPEN;

 SHOW PDBS;

CON_ID 	CON_NAME     OPEN MODE  RESTRICTED
---------- 	------- ----------- ---------- 
         4 	PROD    READ WRITE 			NO
18. Verifique se o PDB está configurado e ativado para Database Vault

Digite o seguinte comando:

SELECT *FROM DBA_DV_STATUS;

                  NAME      		STATUS
______________________ 	_________________
DV_APP_PROTECTION      	NOT CONFIGURED
DV_CONFIGURE_STATUS    	TRUE
DV_ENABLE_STATUS       	TRUE
19.Verifique se o Oracle Database Vault e o Oracle Label Security estão instalados e ativados

Digite os seguintes comandos:

SELECT PARAMETER, VALUE  FROM V$OPTION WHERE PARAMETER IN ('Oracle Label Security','Oracle Database Vault');

               PARAMETER    	VALUE
________________________ 	________
Oracle Label Security    		TRUE
Oracle Database Vault    		TRUE

SELECT COMP_NAME, STATUS FROM DBA_REGISTRY WHERE COMP_NAME IN ('Oracle Label Security','Oracle Database Vault');

               COMP_NAME    	STATUS
________________________ 	_________
Oracle Label Security    		VALID
Oracle Database Vault    		VALID
20. Autorizando Usuários para uso do Data Pump no Database Vault

Efetue login na instância do banco de dados como um usuário que recebeu a função DV_OWNER (C##DBV_OWNER_ROOT).

CONNECT C##DBV_OWNER_ROOT@ PROD
EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('USUARIO', 'SCHEMA', 'ObjetoProtegido');

DESAUTORIZAR

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('USUARIO', 'SCHEMA', 'ObjetoProtegido');

Observação: O usuário precisa ter privilégios para realizar a exportação e/ou importação. Para verificar se o usuário pode realizar esse procedimento, utilize o seguinte comando:

SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE LIKE '%FULL%'  ORDER BY 1;

Caso não tenha, utilize o comando para conceder permissão para exportar e importar

GRANT EXP_FULL_DATABASE TO USUARIO;   
GRANT IMP_FULL_DATABASE TO USUARIO;

21. Efetuando login no Oracle Database Vault a partir do Oracle Enterprise Cloud Control
Acesso ao Enterprise Manager Cloud Control URL

Na página inicial do Cloud Control, no menu Targets, selecione Databases.

22. Configurando o Oracle Database Vault no PDB

É necessario ter o privilégio SELECT ANY DICTIONARY, para não apresentar o erro:

Caso necessite, Conceda as seguintes permissões:

sqlplus /nolog 
CONN / AS SYSDBA
ALTER SESSION SET CONTAINER=PROD;

GRANT CREATE SESSION, SET CONTAINER TO C##DBV_OWNER_ROOT CONTAINER = CURRENT;
GRANT CREATE SESSION, SET CONTAINER TO C##DBV_ACCTMGR_ROOT CONTAINER = CURRENT;

GRANT SELECT ANY DICTIONARY TO C##DBV_OWNER_ROOT;
GRANT SELECT ANY DICTIONARY TO C##DBV_ACCTMGR_ROOT;

Após logar com o usuário C##DBV_OWNER_ROOT

Para criar o realm, clique na guia criar Administração e no submenu Realms em Segurança

Passo 1: Insira um nome e uma descrição, seu status original e o que você deseja auditar:

Passo 2: Escolha os objetos que você gostaria de proteger:

Passo 3: Autorize o acesso as informações

Passo 4: Confira e finalize o processo de criação.

Comando Alternativo para uso no sqlplus, porém incentivamos a usar a ferramenta gráfica.

CONNECT C##DBV_OWNER_ROOT @PROD;

BEGIN
DBMS_MACADM.CREATE_REALM(
	realm_name => 'HR_REALM',
	description => 'Realm for HR Schema',
	enabled => DBMS_MACUTL.G_YES,
	audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS);
END;
/

BEGIN
DBMS_MACADM.ADD_OBJECT_TO_REALM(
	realm_name => 'HR_REALM',
	object_owner => 'HR',
	object_name => '%',
	object_type => '%');
END;
/

Teste após a configuração:

23. Consultando as visões do Oracle Database Vault
SELECT * FROM CDB_DV_STATUS;

                  NAME           	STATUS 		CON_ID
______________________ 	_________________ 	_________
DV_APP_PROTECTION      	NOT CONFIGURED            	1
DV_CONFIGURE_STATUS    	TRUE                   		1
DV_ENABLE_STATUS       	TRUE                   		1
DV_APP_PROTECTION      	NOT CONFIGURED        		4
DV_CONFIGURE_STATUS    	TRUE                   		4
DV_ENABLE_STATUS       	TRUE                  		4
23.2 Consultando autorizações para usar o Oracle Data Pump
SELECT * FROM DBA_DV_DATAPUMP_AUTH;
23.3 Lista os usuários e esquemas que reberam autorização para executar instruções DDL.
SELECT * FROM DBA_DV_DDL_AUTH;
23.4 Lista a trilha de auditoria Essa listagem inclui registros relacionados a alterações de configuração bem-sucedidas e com falha feitas em domínios, regras, conjuntos de regras, fatores e outras atividades de configuração de política do Vault.
col username FOR a10
col action_name FOR a30
col action_object_name FOR a20
SET pages 100
ALTER SESSION SET nls_date_format="dd-mon-yyyy hh24:mi:ss";

SELECT username,TIMESTAMP,action_name,action_object_name FROM dvsys.dv$configuration_audit ORDER BY id# DESC;

23.5 Lista a trilha de auditorias relacionadas a violações do usuário em regras de comando, domínios e fatores.
SELECT username,TIMESTAMP,action_name,action_object_name,action_command FROM dvsys.dv$enforcement_audit ORDER BY id# DESC;

As violações também são informadas no segundo gráfico da tela de configuração do OEMCC.

24. Desabilite o Oracle Database Vault

Para desabilitar o Oracle Database Vault execute o comando:

CONNECT C##DBV_OWNER_ROOT@PROD
EXEC DBMS_MACADM.DISABLE_DV;
Para remover os usuários e o perfil, execute o comando:
DROP USER C##DBV_OWNER_ROOT   CASCADE; 
DROP USER C##DBV_OWNER_BKP    CASCADE; 
DROP USER C##DBV_ACCTMGR_ROOT CASCADE; 
DROP USER C##DBV_ACCTMGR_BKP  CASCADE; 
DROP PROFILE C##DV_PROFILE CASCADE;

Esse procedimento necessita que o banco de dados seja reiniciado. Realize a conexão como o usuário SYS:

CONN / AS SYSDBA
SHUTDOWN IMMEDIATE
STARTUP


0.0 / 5

0 Avalia????es

5
(0)

4
(0)

3
(0)

2
(0)

1
(0)


hostgator