Post on 20-Oct-2015
Instituto Tecnolgico de Lzaro
Crdenas Michoacn
PRACTICA DE SEGURIDAD
MATERIA:
Taller de base de datos
ALUMNO:
Jos Manuel Calleja Zamora
Luis Francisco Fabela Ramos
PROFESOR: Daniel Benito Romn
Ocampo
1. Buscar en la documentacin en lnea y en bd el contenido de las vistas:
dba_profiles
DBA_PROFILES muestra todos los perfiles y sus lmites.
Columna
Tipo de
datos NULL Descripcin
PERFIL VARCHAR2 (30)
NOT
NULL Nombre del perfil
RESOURCE_NAME VARCHAR2 (32)
NOT
NULL Nombre de recurso
Resource_type VARCHAR2 (8)
Indica si el perfil de recursos es
un KERNEL o CONTRASEA parmetro
LMITE VARCHAR2 (40)
Lmite en este recurso para este perfil
dba_roles
DBA_ROLES enumera todos los roles que existen en la base de datos.
Columna Tipo de datos NULL Descripcin
PAPEL VARCHAR2 (30)
NOT
NULL Nombre de funcin
Password_required VARCHAR2 (8)
Indica si la funcin requiere una contrasea
para ser habilitado
dba_users
DBA_USERS describe todos los usuarios de la base de datos.
Vista
USER_USERS describe el usuario actual. Este punto de vista no muestra
el CONTRASEA , PERFIL , password_versions o EDITIONS_ENABLED columnas.
Columna
Tipo de
datos NULL Descripcin
NOMBRE DE USUARIO VARCHAR2 (30)
NOT
NULL Nombre del usuario
USER_ID NMERO NOT NULL
Nmero de identificacin del usuario
CONTRASEA VARCHAR2 (30)
Indica si el usuario es autenticado por el
OID ( GLOBAL ), ni autentificada
externamente ( EXTERNO ); NULL de
otro modo
ACCOUNT_STATUS VARCHAR2 (32)
NOT
NULL Estado de cuenta:
ABIERTO CADUCADO Vencimiento (GRACE) BLOQUEADO (TIEMPO) BLOQUEADO VENCIDO Y BLOQUEADO (TIEMPO) Vencimiento (GRACE) y cerrado
(TIEMPO) VENCIDO Y BLOQUEADO Vencimiento (GRACE) y
BLOQUEADO
LOCK_DATE FECHA Fecha en que la cuenta ha sido
bloqueada si el estado de cuenta
seBLOQUEADO
EXPIRY_DATE FECHA Fecha de caducidad de la cuenta
DEFAULT_TABLESPACE VARCHAR2 (30)
NOT
NULL Espacio de tabla por defecto para los
datos
Columna
Tipo de
datos NULL Descripcin
TEMPORARY_TABLESPACE VARCHAR2 (30)
NOT
NULL Nombre del espacio de tabla por
defecto para las tablas temporales o el
nombre de un grupo de tablas
CREADO FECHA NOT NULL
Fecha de creacin del usuario
PERFIL VARCHAR2 (30)
NOT
NULL Nombre de usuario perfil de recursos
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2 (30)
Grupo de consumidores de recursos
inicial para el usuario
External_name VARCHAR2 (4000)
Nombre externo del usuario
Password_versions VARCHAR2 (8)
Versin de la base en la que se cre o
se cambia la contrasea
EDITIONS_ENABLED VARCHAR2 ( 1)
Reservado para uso futuro
dba_role_privs
DBA_ROLE_PRIVS describe los roles otorgados a todos los usuarios y roles en la
base de datos.
Vista USER_ROLE_PRIVS describe los roles concedidos al usuario actual.
Columna Tipo de datos NULL Descripcin
CONCESIONARIO VARCHAR2 (30)
Nombre del usuario o rol beneficiaria de la
subvencin
GRANTED_ROLE VARCHAR2 (30)
NOT
NULL Nombre de rol concedido
ADMIN_OPTION VARCHAR2 (3)
Indica si la subvencin fue con la OPCIN
ADMIN ( S ) o no ( NO )
DEFAULT_ROLE VARCHAR2 (3)
Indica si la funcin ha sido designada como
una funcin predeterminada para el usuario
( S ) o no ( NO )
dba_tab_privs
DBA_TAB_PRIVS describe todas las subvenciones objeto de la base de datos.
VISTAS
USER_TAB_PRIVS describe las subvenciones objeto de que el usuario actual es el
propietario del objeto, concedente o concesionario.
Columna Tipo de datos NULL Descripcin
CONCESIONARIO VARCHAR2 (30)
NOT
NULL Nombre del usuario al que se le concedi acceso
PROPIETARIO VARCHAR2 (30)
NOT
NULL Propietario del objeto
TABLE_NAME VARCHAR2 (30)
NOT
NULL Nombre del objeto
CONCEDENTE VARCHAR2 (30)
NOT
NULL Nombre del usuario que realiz la donacin
PRIVILEGE VARCHAR2 (40)
NOT
NULL Privilegios sobre el objeto
Grantable VARCHAR2 (3)
Indica si el privilegio fue concedido con el GRANT
OPTION ( S ) o no ( NO )
JERARQUA VARCHAR2 (3)
Indica si el privilegio fue concedido con
la OPCIN JERARQUA ( S ) o no ( NO )
dba_sys_privs
DBA_SYS_PRIVS describe los privilegios del sistema concedidos a usuarios y
roles. Este punto de vista no muestra el USUARIO columna.
VISTAS
USER_SYS_PRIVS describe los privilegios del sistema concedidos al usuario
actual. Este punto de vista no muestra el CONCESIONARIO columna, sino que muestra
el USUARIO columna.
Columna
Tipo de
datos NULL Descripcin
CONCESIONARIO VARCHAR2 (30)
NOT
NULL Nombre del Beneficiario, usuario o rol
beneficiaria de la subvencin
NOMBRE DE
USUARIO VARCHAR2
(30) Nombre del usuario actual
PRIVILEGE VARCHAR2 (40)
NOT
NULL Privilegio de sistema
ADMIN_OPTION VARCHAR2 (3)
Grant era el ADMIN opcin
SQL> DESC DBA_PROFILES
SQL> DESC DBA_ROLES
SQL> DESC DBA_USERS
SQL> DESC DBA_ROLE_PRIVS
SQL> DESC DBA_TAB_PRIVS
SQL> DESC DBA_SYS_PRIVS
2. Conectarse como usuario SYSTEM a la base y crear un usuario llamado
"tablespace" por defecto USERS y como "tablespace" temporal TEMP; asignar una cuota de 500K en el "tablespace" USERS. SQL> CREATE USER ADMINISTRADOR IDENTIFIED BY ADMIN 2 DEFAULT TABLESPACE USERS 3 TEMPORARY TABLESPACE TEMP 4 QUOTA 500K ON USERS;
User created. SQL> SELECT USERNAME FROM DBA_USERS WHERE USERNAME='ADMINISTRADOR';
3. Abrir una sesin sqlplus e intentar conectarse como usuario
El usuario ADMINISTRADOR no tiene permiso para conectarse a la base de datos
4. Averiguar qu privilegios de sistema, roles y privilegios sobre objetos tiene
SQL> select * from dba_role_privs where grantee='ADMINISTRADOR'; no rows selected
SQL> select * from dba_tab_privs where grantee='ADMINISTRADOR'; no rows selected
SQL> select * from dba_sys_privs where grantee='ADMINISTRADOR'; no rows selected
intentar de nuevo la conexin sqlplus. SQL> grant create session to administrador; Grant succeeded.
SQL> connect administrador Enter password: Connected.
"tablespace" temporal TEMP; asignar una cuota de 0K en el "tablespace" USERS. Es posible hacerlo?.
SQL> r 1 create user prueba00 identified by prueba00 2 default tablespace users 3 temporary tablespace temp 4* quota 0k on users create user prueba00 identified by prueba00*
7. Conect
SQL> grant create user to administrador; Grant succeeded.
SQL> connect administrador Enter password: Connected.
SQL> create user prueba00 identified by prueba00 2 default tablespace users 3 temporary tablespace temp 4* quota 0k on users User created.
8. Averiguar que usuarios de la base de datos tienen asignado el privilegio
nsultada?. SQL> desc dba_sys_privs
SQL> select * from dba_sys_privs where privilege ='CREATE USER';
SQL> select * from dba_sys_privs where privilege ='CREATE SESSION';
10. Crear dos "tablespace" llamados NOMINA y ACADEMO, que contendrn datos relativos a las aplicaciones de nomina y datos acadmicos de los empleados de una empresa, segn las siguientes caractersticas: ACADEMO NOMINA Tamao inicial 1M 1M Autoextensible SI SI Extensin 200K 100K Tamao mximo 1400K 1500K Parmetros almacenamiento Initial 16K 16K Next 16K 16K Minextents 1 1 Maxextents 3 3 Localizacin /u02/oradata/ /u02/oradata/ Consulte la ayuda en lnea si no recuerda la sintaxis exacta de la sentencia.
SQL> create tablespace academo datafile '/oraclexe/oradata/XE/academo01.dbf' size 1M 2 autoextend on next 200k maxsize 1400K 3 default storage (initial 16k next 16k 4 minextents 1 maxextents 3); Tablespace created.
SQL> create tablespace nomina datafile '/oraclexe/oradata/XE/nomina01.dbf' size 1M 2 autoextend on next 100K maxsize 1500K 3 default storage (initial 16k next 16k 4 minextents 1 maxextents 3); Tablespace created.
11.Crear dos "tablespace" temporales, manejados de forma local, llamados TEMP_NOMINA y TEMP_ACADEMO con las siguientes caractersticas: TEMP_ACADEMO TEMP_NOMINA Tamao inicial 500K 600K Autoextensible SI SI Extensin 50K 50K Tamao mximo 600K 700K Localizacin /u04/oradata/ /u04/oradata/ SQL> create temporary tablespace temp_academo 2 tempfile '/oraclexe/oradata/XE/temp_academo01.dbf' 3 size 500k autoextend on next 50k maxsize 600k 4 extent management local uniform size 100k; Tablespace created.
SQL> create temporary tablespace temp_nomina 2 tempfile '/oraclexe/oradata/XE/temp_nomina01.dbf' 3 size 600k autoextend on next 50k maxsize 700k 4 extent management local uniform size 100k; Tablespace created.
12. ll SQL> connect administrador Enter password: Connected. SQL> create role administrador; create role administrador * ERROR at line 1: ORA-01031: insufficient privileges
13.Idem estando conectado como usuario SYSTEM, qu sucede?, por qu?. SQL> connect system Enter password: Connected. SQL> create role administrador; create role administrador *
El role administrador no se puede crear debido a que existe un usuario del mismo nombre
14. Comprobar en el diccionario de datos los usuarios o roles que poseen el
SQL> select * from dba_sys_privs where privilege ='CREATE ROLE'; GRANTEE PRIVILEGE ADM -------------------------------------------------------------------------- DBA CREATE ROLE YES IMP_FULL_DATABASE CREATE ROLE NO
15. Asignarlo al usuario administrador.
SQL> create role admin; Role created. SQL> grant create session to admin; Grant succeeded.
SQL> c.session.user. 1* grant create user to admin SQL> r 1* grant create user to admin Grant succeeded. SQL> c.user.role.
1* grant create role to admin
SQL> r 1* grant create role to admin Grant succeeded. SQL> grant admin to administrador; Grant succeeded.
16. Consultar los privilegios de sistema que tiene asignados de forma directa
SQL> select * from dba_sys_privs where grantee ='ADMINISTRADOR'
SQL> revoke create session from administrador; Revoke succeeded. SQL> c.session.user. 1* revoke create user from administrador SQL> r 1* revoke create user from administrador Revoke succeeded.
SQL> grant admin to administrador; Grant succeeded.
autenticado por base de datos al que no se le asigne "tablespace" por defecto ni temporal.
SQL> create user prueba01 identified by prueba01; User created.
18. Consultar en las vistas correspondientes los "tablespaces" y la quota en
cada uno de ellos que tiene los usuarios
SYS,SYSTEM, . Qu ha ocurrido
SQL> select substr(username,1,15) usuario, DEFAULT_TABLESPACE ,
TEMPORARY_TABLESPACE 2 from dba_users 3 where username in ('SYS','SYSTEM','ADMINISTRADOR','PRUEBA00','PRUEBA01');
SQL> select substr(username,1,15) usuario, tablespace_name, max_bytes from dba_ts_quotas where username in ('SYS','SYSTEM','ADMINISTRADOR','PRUEBA00','PRUEBA01')
asignando como "tablespace" por defecto NOMINA y como "tablespace" temporal TEMP_NOMINA (no se le asignara cuota en NOMINA).
SQL> create user prueba02 identified by prueba02 2 default tablespace nomina 3 temporary tablespace temp_nomina; User created.
ce" ACADEMO y TEMP_ACADEMO como "tablespace" de trabajo y temporal respectivamente (sin especificar cuota). SQL> alter user prueba01 temporary tablespace temp_academo; User altered. SQL> alter user prueba01 default tablespace academo;
21.Consultar en las vistas correspondientes los "tablespace" y la cuota en cada uno de ellos que tiene los usuari SQL> select * from dba_ts_quotas where username in ('PRUEBA01','PRUEBA02');
SQL> create role conexion; Role created.
SQL> grant create session to conexion; Grant succeeded.
SQL> grant conexion to prueba00, prueba01, prueba02; Grant succeeded.
24.Comprobar en la vista correspondiente cuales son los roles asignados a los SQL> select * from dba_role_privs where grantee in ('PRUEBA00','PRUEBA01','PRUEBA02');
"tablespace" ACADEMO: CREATE TABLE CODIGOS(CODIGO varchar2(3),DESCRIPCION varchar2(20)) TABLESPACE ACADEMO STORAGE (INITIAL 64K NEXT 64K MINEXTENTS 5 MAXEXTENTS 10); Es posible hacerlo?, falta algn permiso?. SQL> connect prueba01 Enter password: Connected. SQL> CREATE TABLE CODIGOS 2 (CODIGO varchar2(3), 3 DESCRIPCION varchar2(20)) 4 TABLESPACE ACADEMO 5 STORAGE (INITIAL 64K 6 NEXT 64K 7 MINEXTENTS 5 8* MAXEXTENTS 10) CREATE TABLE CODIGOS *
Es imposible el usuario no tiene permisos para crear tablas
26. Crear u SEQUENCE", "CREATE SESSION", "CREATE SYNONYM", "CREATE TABLE" y "CREATE VIEW".
SQL> connect system Enter password: Connected. SQL> create role desarrollo; Role created.
SQL> grant create sequence, create session, create synonym, create table, create view to desarrollo;
SQL> grant desarrollo to prueba00, prueba01, prueba02;
ACADEMO. SQL> connect prueba01 Introduzca su clave: Connected. SQL> CREATE TABLE CODIGOS 2 (CODIGO varchar2(3), 3 DESCRIPCION varchar2(20)) 4 TABLESPACE ACADEMO 5 STORAGE (INITIAL 64K 6 NEXT 64K 7 MINEXTENTS 5 8* MAXEXTENTS 10) CREATE TABLE CODIGOS*