Instalando Database Vault

No artigo anterior, demonstrei como configurar o Database Vault em um ambiente.
No entanto, em alguns ambientes 19c que foram migrados da versão 11g, o Database Vault pode não estar instalado. Mas como posso verificar isso?
sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Oct 29 20:58:51 2024
Version 19.19.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0
SQL> set pages 50
SQL> set line 200
SQL> col comp_name for a50
SQL> SELECT comp_name, version, status FROM dba_registry WHERE comp_name in( 'Oracle Database Vault', 'Oracle Label Security');
no rows selected
SQL> SELECT comp_name, version FROM dba_registry ;
COMP_NAME VERSION
-------------------------------------------------- --------------
Oracle Database Catalog Views 19.0.0.0.0
Oracle Database Packages and Types 19.0.0.0.0
JServer JAVA Virtual Machine 19.0.0.0.0
Oracle XDK 19.0.0.0.0
Oracle Database Java Packages 19.0.0.0.0
OLAP Analytic Workspace 19.0.0.0.0
Oracle Real Application Clusters 19.0.0.0.0
Oracle Workspace Manager 19.0.0.0.0
Oracle Text 19.0.0.0.0
Oracle XML Database 19.0.0.0.0
Oracle Multimedia 19.0.0.0.0
Spatial 19.0.0.0.0
Oracle OLAP API 19.0.0.0.0
Oracle Application Express 5.0.4.00.12
14 rows selected.
Como podemos ver acima, este é um banco 19C e não temos o DBV instalado.
O Database vault é dependente do Oracle Label Security, então vamos "instalar" ele primeiro e depois o Database Vault.
Preparação para instalar o Oracle Label Security
Criação de Tablespace's exclusivas para esses itens:
CREATE TABLESPACE TBS_DBV DATAFILE SIZE 1G AUTOEXTEND ON NEXT 1G ;
CREATE TEMPORARY TABLESPACE TBS_DBV_TEMP TEMPFILE SIZE 1G AUTOEXTEND ON NEXT 1G ;
Verificando....
SQL> select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME in ('TBS_DBV','TBS_DBV_TEMP') ;
TABLESPACE_NAME
------------------------------
TBS_DBV
TBS_DBV_TEMP
Criando um restore point que nunca é demais....
create restore point PRE_DBV guarantee flashback database;
Agora vamos iniciar o procedimento de instalação do DBV, este procedimento está na nota: How To Enable/Install/Uninstall Database Vault in oracle database? (Doc ID 2112167.1)
Instalando o Label Security (Este procedimento demora em torno de 10 a 20 min)
@$ORACLE_HOME/rdbms/admin/catols.sql
Depois da execução do script acima, saia no sqlplus e logue novamente para executar os seguintes comandos:
exec lbacsys.configure_ols
exec lbacsys.ols_enforcement.enable_ols
SQL> exec lbacsys.configure_ols
PL/SQL procedure successfully completed.
SQL> exec lbacsys.ols_enforcement.enable_ols
PL/SQL procedure successfully completed.
Vamos verificar agora se o label secury foi instalado com sucesso:
set line 200
set pages 45
col comp_name for a50
SELECT comp_name, version, status FROM dba_registry WHERE comp_name in( 'Oracle Database Vault', 'Oracle Label Security');
COMP_NAME VERSION STATUS
-------------------------------------------------- ------------------------
Oracle Label Security 19.0.0.0.0 VALID
Agora vamos instalar o Database Vault, o primeiro parâmetro é a Tablespace permanente e a segunda temporária que criamos no início do artigo.
@$ORACLE_HOME/rdbms/admin/catmac.sql TBS_DBV TBS_DBV_TEMP
sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Oct 29 22:36:23 2024
Version 19.19.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.19.0.0.0
SQL> select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME in ('TBS_DBV','TBS_DBV_TEMP') ;
TABLESPACE_NAME
------------------------------
TBS_DBV
TBS_DBV_TEMP
SQL> show user
USER is "SYS"
-- A execução deste script demora por volta de 10 min.
SQL> @$ORACLE_HOME/rdbms/admin/catmac.sql TBS_DBV TBS_DBV_TEMP
Ultimas linhas do spool:
Commit complete.
SQL>
SQL> @?/rdbms/admin/sqlsessend.sql
SQL> Rem
SQL> Rem $Header: rdbms/admin/sqlsessend.sql /main/3 2018/07/25 13:50:02 surman Exp $
SQL> Rem
SQL> Rem sqlsessend.sql
SQL> Rem
SQL> Rem Copyright (c) 2013, 2018, Oracle and/or its affiliates.
SQL> Rem All rights reserved.
SQL> Rem
SQL> Rem NAME
SQL> Rem sqlsessend.sql - SQL session end
SQL> Rem
SQL> Rem DESCRIPTION
SQL> Rem Any commands which should be run at the end of all oracle
SQL> Rem supplied scripts.
SQL> Rem
SQL> Rem NOTES
SQL> Rem See sqlsessstart.sql for the corresponding start script.
SQL> Rem
SQL> Rem BEGIN SQL_FILE_METADATA
SQL> Rem SQL_SOURCE_FILE: rdbms/admin/sqlsessend.sql
SQL> Rem SQL_SHIPPED_FILE: rdbms/admin/sqlsessend.sql
SQL> Rem SQL_PHASE: MISC
SQL> Rem SQL_STARTUP_MODE: NORMAL
SQL> Rem SQL_IGNORABLE_ERRORS: NONE
SQL> Rem END SQL_FILE_METADATA
SQL> Rem
SQL> Rem MODIFIED (MM/DD/YY)
SQL> Rem surman 05/04/18 - 27464252: Update SQL_PHASE
SQL> Rem surman 03/08/13 - 16462837: Common start and end scripts
SQL> Rem surman 03/08/13 - Created
SQL> Rem
SQL>
SQL> alter session set "_ORACLE_SCRIPT" = false;
Instalação concluída vamos verificar os status do database vault:
set line 200
set pages 45
col comp_name for a50
SELECT comp_name, version, status FROM dba_registry WHERE comp_name in( 'Oracle Database Vault', 'Oracle Label Security');
COMP_NAME VERSION STATUS
-------------------------------------------------- -----------------------------
Oracle Label Security 19.0.0.0.0 VALID
Oracle Database Vault 19.0.0.0.0 VALID
Pronto! Caso você queira habilitar/configurar o Database Vault no seu banco de dados, dá uma olhada nesse link:
Algumas observações:
1 - A instalação do Label Security em instâncias que estão em RAC e com PDB pode causar um "stuck" na segunda instância. Tive esse problema em versões abaixo da 19.20, mas, até onde verifiquei, ele foi resolvido a partir da versão 19.20.
2 - Caso algum objeto fique inválido, execute o UTLRP. Recomendo fazer um backup da tabela DBA_OBJECTS com a condição WHERE STATUS='INVALID' para verificar posteriormente se todos os objetos permanecem "estáveis" após a instalação do DBV.
Como sempre, recomendo realizar validações rigorosas em homologações e nunca executar nada diretamente em produção.






