Escolar Documentos
Profissional Documentos
Cultura Documentos
- Ambiente
S.O: Oracle Linux 8
SGBD: Oracle 19c
Banco: Single Instance com Multitenant (CDB e PDBs)
##############################################
Referencia: https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/
performing-privilege-analysis-identify-privilege-use.html#GUID-44CB644B-7B59-4B3B-
B375-9F9B96F60186
--> Definição
- E uma feature que faz o rastreio de uso de privilegios pelos usuários no
banco de dados, e o mesmo que as auditorias fazem, porem ao invez de fazer a nivel
de objetos faz a nivel de privilegio.
- Simplificando muito a análise de privilégios, que por sua vez permite
revogar privilégios desnecessários e atingir um estado de privilégio mínimo.
--> Objetivo
- Analisa dinamicamente os privilégios e funções que os usuários usam e não
usam.
- Aumenta a segurança de seus aplicativos e operações de banco de dados,
ajudando você a implementar práticas recomendadas de privilégio mínimo para funções
e privilégios de banco de dados.
se multitenant
SQL> alter session set container=PDB01;
create user dbacaradenada identified by dbacaradenada;
grant dba, resource to dbacaradenada;
se multitenant
SQL> alter session set container=PDB_NAME;
se multitenant
SQL> alter session set container=PDB01;
Tipos:
- G_DATABASE : Analisa todos os usos de privilégios no banco de dados, exceto
o usuário SYS. Os parâmetros ROLES e CONDITION não são necessários.
- G_ROLE : Analisa todo o uso de privilégios pelas funções especificadas no
parâmetro ROLES. Use a função ROLE_NAME_LIST para especificar as funções.
- G_CONTEXT : Analisa todos os usos de privilégios quando a expressão
booleana especificada no parâmetro CONDITION é avaliada como TRUE. As condições
podem incluir combinações de chamadas para o SYS_CONTEXT.
- G_ROLE_AND_CONTEXT : Analisa todos os usos de privilégios quando os
critérios ROLES e CONDITION são verdadeiros.
se multitenant
SQL> alter session set container=PDB01;
- G_DATABASE
begin
dbms_privilege_capture.create_capture(
name => 'DB_POL',
type => dbms_privilege_capture.g_database
);
end;
/
- G_ROLE
begin
dbms_privilege_capture.create_capture(
name => 'ROLE_POL',
type => dbms_privilege_capture.g_role,
roles => role_name_list('DBA', 'RESOURCE')
);
end;
/
- G_CONTEXT
begin
dbms_privilege_capture.create_capture(
name => 'CONT_POL',
type => dbms_privilege_capture.g_context,
condition => 'sys_context(''userenv'', ''session_user'') = ''DBACARADENADA'''
);
end;
/
- G_ROLE_AND_CONTEXT).
begin
dbms_privilege_capture.create_capture(
name => 'ROLE_CONT_POL',
type => dbms_privilege_capture.g_role_and_context,
roles => role_name_list('DBA', 'RESOURCE'),
condition => 'sys_context(''userenv'', ''session_user'') = ''DBACARADENADA'''
);
end;
/
se multitenant
SQL> alter session set container=PDB01;
- Habilitar
- Desabilitar
se multitenant
SQL> alter session set container=PDB01;
se multitenant
SQL> alter session set container=PDB01;
se multitenant
SQL> alter session set container=PDB01;