Políticas de seguridad:
Es sumamente importante tener en nuestra base de datos las políticas de seguridad, donde podamos encontrar entre otras cosas, las funciones/procesos/usuarios, que acceden a nuestra base. Como así también tener un control sobre la misma.
Aquí veremos algunas sentencias donde podemos registrar donde guardar esta información que es de gran importancia.
Hay varias opciones, nosotros consultaremos una. Cada negocio lo puede guarda en otra tabla o crear vistas para que estas vayan acumulando y registrando la información.
Políticas de auditoria:
select OBJECT_SCHEMA,
OBJECT_NAME,
POLICY_NAME,
POLICY_TEXT,
POLICY_COLUMN,
PF_SCHEMA,
PF_PACKAGE,
PF_FUNCTION,
ENABLED
from sys.all_audit_policies
order by 1,2,3
select OBJECT_SCHEMA,
OBJECT_NAME,
POLICY_NAME,
POLICY_TEXT,
POLICY_COLUMN,
PF_SCHEMA,
PF_PACKAGE,
PF_FUNCTION,
ENABLED,
SEL,
INS,
UPD,
DEL,
AUDIT_TRAIL,
POLICY_COLUMN_OPTIONS
from sys.all_audit_policies
order by 1,2,3
Políticas:
select object_owner "Object_Owner",
object_name "Object_Name",
policy_group "Policy_Group",
policy_name "Policy_Name",
pf_owner "Policy_Function_Owner",
package "Package",
function "Policy_Function",
sel "Sel",
ins "Ins",
upd "Upd",
del "Del",
chk_option "Chk_Option",
enable "Enable",
static_policy "Static_Policy"
from sys.all_policies
where object_owner = user
or pf_owner = user
order by object_owner, object_name, policy_group
select object_owner "Object_Owner",
object_name "Object_Name",
policy_group "Policy_Group",
policy_name "Policy_Name",
pf_owner "Policy_Function_Owner",
package "Package",
function "Policy_Function",
sel "Sel",
ins "Ins",
upd "Upd",
del "Del",
idx "Idx",
chk_option "Chk_Option",
enable "Enable",
static_policy "Static_Policy",
policy_type "Policy_Type"
from sys.all_policies
where object_owner = user
or pf_owner = user
order by object_owner, object_name, policy_group
Este blog esta hecho con la intención de ayudar. Aportes sobre realización de backups y recovery. Métodos de administración de bases, dblinks y migraciones, tablas, indices, estadísticas, etc. Diseño web y plantillas en php.
Mi lista de blogs
lunes, 21 de septiembre de 2015
martes, 15 de septiembre de 2015
Informa AWR - AWR en Oracle Database 10g
El informe AWR nos permite extraer informes del estado de nuestra base de datos para poder relizar tareas de Tuning:
declare
dbid number;
instance_id number;
start_id number;
end_id number;
begin
dbms_output.enable(1000000);
select max(snap_id)-1,max(snap_id) into start_id,end_id from dba_hist_snapshot;
select dbid into dbid from v$database;
select instance_number into instance_id from v$instance;
dbms_output.put_line('<PRE>');
for rc in ( select output from
table(dbms_workload_repository.awr_report_text(dbid,instance_id,start_id,end_id))
) loop
-- dbms_output.put_line('<BR>');
dbms_output.put_line(rc.output);
end loop;
dbms_output.put_line('</PRE>');
end;
viernes, 11 de septiembre de 2015
VERIFICAR BLOQUEOS POR USUARIO
Verificar bloqueos por usuario en la base de datos ORACLE.
Esto nos va a servir para poder identificar los bloqueos que cada usuario esta produciendo en el online de la base operativa.
select /*+ ORDERED */
blocker.sid blocker_sid
, waiting.sid waiting_sid
, TRUNC(waiting.ctime/60) min_waiting
, waiting.request
from (select *
from v$lock
where block != 0
and type = 'TX') blocker
, v$lock waiting
where waiting.type='TX'
and waiting.block = 0
and waiting.id1 = blocker.id1
Esto nos va a servir para poder identificar los bloqueos que cada usuario esta produciendo en el online de la base operativa.
select /*+ ORDERED */
blocker.sid blocker_sid
, waiting.sid waiting_sid
, TRUNC(waiting.ctime/60) min_waiting
, waiting.request
from (select *
from v$lock
where block != 0
and type = 'TX') blocker
, v$lock waiting
where waiting.type='TX'
and waiting.block = 0
and waiting.id1 = blocker.id1
COMO VERIFICAR LAS ESTADISTICAS !!!!
Con este select podremos visualizar las estadísticas de nuestra base de datos.
select owner "Owner",
table_name "Table_Name",
last_analyzed "Last_Analyzed",
num_rows "Rows",
avg_row_len "Average_Row_Length",
decode(iot_type,'YES','IOT','HEAP')||
decode(temporary,'N',null,'-Temporary')||
decode(trim(cache),'N',null,'-Cached')||
decode(partitioned,'NO',null,'-Partitioned')||
decode(compression,'DISABLED',null,'-Compressed') "Table_Type",
owner sdev_link_owner,
table_name sdev_link_name,
'TABLE' sdev_link_type
from sys.dba_tables
where (:OWNER is null or instr(owner,upper(:OWNER)) > 0)
and substr(table_name,1,4) != 'BIN$'
and substr(table_name,1,3) != 'DR$'
and (:TABLE_NAME is null or
instr(upper(table_name),upper(:TABLE_NAME))>0)
order by owner, table_name
INDICES NO UTILIZADOS
Verificar los indices no utilizados, es muy importante a la hora de preocuparnos por la performance de nuestra base de datos. No obstante, es necesario tener periódicamente una reconstrucción de nuestros indices y cálculos de estadisticas. Para optimizar todo tipo de demora de nuestra base es importante contar con varios de estos querys que iremos colocando en el blog.
select owner "Owner",
index_name "Index Name",
index_type "Index Type",
table_name "Table Name",
owner sdev_link_owner,
index_name sdev_link_name,
'INDEX' sdev_link_type
from sys.dba_indexes
where status = 'UNUSABLE'
order by index_name
INDICES POR TIPO
INDICES POR TIPO:
Es sumamente importante contar con esta información, para poder verificar que tipos de indices tenemos.
select index_type "Index Type",
count(*) "Index Count"
from sys.dba_indexes
group by index_type
order by index_type
Es sumamente importante contar con esta información, para poder verificar que tipos de indices tenemos.
select index_type "Index Type",
count(*) "Index Count"
from sys.dba_indexes
group by index_type
order by index_type
INDICES POR ESTADO
Saber el estado de los indices, es fundamental para poder tener en nuestra estructura los rebuild o recreación que tenemos que tener en cuenta para el manteniemiento de nuestra base de datos.
select status "Status",
count(*) "Index Count"
from sys.dba_indexes
group by status
order by status
select status "Status",
count(*) "Index Count"
from sys.dba_indexes
group by status
order by status
Suscribirse a:
Entradas (Atom)