Oracle Live

11/04/2016

Privilege Analysis

Filed under: New 12c — mogukiller @ 11:11 pm
Version: 12.1.0.2

'Teoria: Consiste en analizar que privilegios esta utilizando un usuario y cuales no
Paquete: DBMS_PRIVILEGE_CAPTURE
Existen tres tipos de analisis que podamos realizar:
	- Database: analiza todos los privilegios de la base de datos.
	- Role: Analiza los privilegios utilizados por un role.
	- Context: Cuando una condicion se evalua como cierta.
Pasos:
	1.- Creamos una captura.
	2.- Habilitamos la captura.
	3.- Paramos la captura.
	4.- Analizamos
	5.- Borramos la captura.
'

	
1.-- CREAMOS UNA CAPTURA.

-- Analisis de todos los privilegios de la base de datos

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
        name         => 'all_priv_analysis_pol',
        description  => 'database-wide policy to analyze all privileges',
        type         => DBMS_PRIVILEGE_CAPTURE.G_DATABASE);
END;

-- Analisis de los privilegios asignados a PUBLIC

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
       name         => 'pub_analysis_pol',
       description  => 'Policy to record privilege use by PUBLIC',
       type         => DBMS_PRIVILEGE_CAPTURE.G_ROLE,
       roles        => role_name_list('PUBLIC'));
END;

-- Analiza los privilegios  que utiliza el usuario MOGU
BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
  name         => 'acc_pay_analysis_pol',
  type         => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT,
  condition    => 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'') = ''MOGU''');				<<<<-- con G_CONTEXT es mandatory una condicion
END;

2.-- HABILITAMOS LA CAPTURA

EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('all_priv_analysis_pol');

3.-- PARAMOS LA CAPTURA

EXEC DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE ('all_priv_analysis_pol');

4.-- ANALIZAMOS EL RESULTADO

EXEC DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT ('all_priv_analysis_pol');

col username format a10
col sys_priv format a16
col object_owner format a13
col object_name format a23
SELECT USERNAME, SYS_PRIV, OBJECT_OWNER, OBJECT_NAME FROM DBA_USED_PRIVS WHERE USERNAME = 'MOGU';
/*
USERNAME   SYS_PRIV         OBJECT_OWNER  OBJECT_NAME
---------- ---------------- ------------- -----------------------
MOGU                        SYS           DBA_TABLES
MOGU       CREATE SESSION
MOGU       CREATE TABLE
MOGU       CREATE SESSION
MOGU                        SYS           DUAL
MOGU                        SYS           DBA_TABLES
MOGU       CREATE TABLE
MOGU       CREATE SESSION
MOGU                        SYS           DBA_TABLES
MOGU                        SYS           DBA_TABLES
MOGU                        SYS           DBA_TABLES
MOGU                        SYS           DBA_TABLES
*/

col username format a9
col used_role format a10
col object_name format a22
col object_type format a12
SELECT USERNAME, OBJ_PRIV, USED_ROLE, OBJECT_OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_USED_OBJPRIVS WHERE USERNAME = 'MOGU' ORDER BY 1, 2, 3, 4, 5, 6;

/*
USERNAME  OBJ_PRIV   USED_ROLE  OBJECT_OWN OBJECT_NAME            OBJECT_TYPE
--------- ---------- ---------- ---------- ---------------------- ------------
MOGU      EXECUTE    PUBLIC     SYS        DBMS_APPLICATION_INFO  PACKAGE
MOGU      SELECT     PUBLIC     SYS        DUAL                   TABLE
MOGU      SELECT     PUBLIC     SYS        DUAL                   TABLE
MOGU      SELECT     PUBLIC     SYSTEM     PRODUCT_PRIVS          VIEW
MOGU      SELECT     SELECT_CAT SYS        DBA_TABLES             VIEW
                     ALOG_ROLE
*/

-- Vemos que privilegios no utiliza

col username format a9
col sys_priv format a35

SELECT USERNAME, SYS_PRIV FROM DBA_UNUSED_SYSPRIVS WHERE USERNAME = 'MOGU' ORDER BY 1, 2;

5. -- BORRAMOS LA CAPTURA

EXEC DBMS_PRIVILEGE_CAPTURE.DROP_CAPTURE ('all_priv_analysis_pol');

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: