Вы находитесь на странице: 1из 13

UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRION

FACULTAD DE INGENIERIA INDUSTRIAL, SISTEMAS E


INFORMATICA

ESCUELA ACADEMICO PROFESIONAL DE


INGENIERIA INFORMATICA

CURSO
BASE DE DATOS II

ORACLE 10g – ADMINISTRACION


SEPARATA Nº 04
SEGURIDAD

DOCENTE
ING. CIP EDWIN IVAN FARRO PACIFICO

HUACHO-LIMA
PERU
Universidad Nacional José Faustino Sánchez Carrión

SEGURIDAD
 Tiene que ver con el acceso de los usuarios a la Base de Datos.
 Tiene que ver con el ingresar(conectarse)
 Tiene que ver con los privilegios
Los privilegios pueden ser de dos tipos:
a) Del sistema.- Es el acceso a la base de datos
b) De los datos.- Acceso a los objetos de la base de datos

ESQUEMAS
Conjunto de objetos que pertenecen al usuario.
Un usuario puede ser propietario de un objeto. Tiene todos los derechos de un objeto, es decir es el
OWNER.
Un objeto sólo puede tener un propietario, es la persona que otorga privilegios sobre los objetos.

¿Cuando un usuario se convierte en propietario?


Cuando crea el objeto

Ejercicio
Conectarse como scott y la contraseña tiger
Crear la siguiente tabla:

SQL> CREATE TABLE clientes


(idcliente number(5),
nombclie varchar2(50))

Ingresar el siguiente registro:

INSERT INTO clientes VALUES (1,'ANA TORRES')

Ahora conectese como system y ejecute la siguiente instrucción para ver los registros de la tabla
clientes

SQL> SELECT * FROM clientes;

No hay resultado, para verlo debe poner el nombre del propietario:

SQL>SELECT * FROM scott.clientes;

Un usuario puede no tener esquema, cuando no tiene objetos. Cuando un usuario tiene esquema,
quiere decir que tiene objetos, es decir Quota en el TableSpace.

¿Qué es una quota?


Espacio asignado al TableSpace

PRIVILEGIOS DEL SISTEMA


Son aquellos derechos generales sobre la base de datos, tiene que ver con el entorno de la base de
datos y tienen que ver con la administración de la base de datos.
La mayoría de los derechos del sistema son pertenecientes al DBA. Son más de 100 privilegios.
La ventaja es que cada privilegio está asociado a un comando.

Ing. CIP Edwin Iván Farro Pacífico Pag. 2


Universidad Nacional José Faustino Sánchez Carrión

Ejemplo:

CREATE USER del dba, que es la posibilidad de crear ususarios.


DROP TABLE del dba.
DROP USER del dba.
CREATE VIEW del dba.

CREAR USUARIOS
Crear usuario
1. Conectarse como system y privilegio sysdba.
2. Crear el usuario jose

SQL> CREATE USER jose


IDENTIFIED BY oracle;

3. Abrir sesión como jose y clave oracle. No se podrá conectarse ya que no tiene privilegios
suficientes.

Privilegios de inicio de sesión

1. Vuelva a conectarse como system y sysdba. Dar privilegios para iniciar sesión.
2. Digitar la siguiente instrucción:

SQL> GRANT CREATE SESSION TO jose;

Ahora conectarse como jose.

3. Tratar de ver el contenido de la tabal clientes de scout. Digitar la siguiente instrucción:

SQL> SELECT * FROM scott.clientes;


Privilegios insuficientes

SQL>CREATE TABLE temporal


(idtemporal number(5));
Privilegios insuficientes

Privilegios de creación de tablas, procedimientos y vistas.

1. Vuelva a conectarse como system y sysdba. Dar privilegios para iniciar sesión.
Digitar la siguiente instrucción:

SQL>GRANT CREATE TABLE,


CREATE PROCEDURE,CREATE VIEW TO jose;

2. Ahora desde el usuario jose crear la siguiente tabla:

CREATE TABLE productos


(idproducto number(5),
nombprod varchar2(50),
precprod decimal(10,2)

Ing. CIP Edwin Iván Farro Pacífico Pag. 3


Universidad Nacional José Faustino Sánchez Carrión

CONSTRAINT pk_idproducto PRIMARY KEY(idproducto));

No hay suficientes privilegios porque no tiene quota.

ROLES
Son conjuntos de privilegios, es un identificador al cual ya viene asignado una cantidad de
privilegios, es equivalente a crear las funciones de un grupo de usuarios.
En realidad es un conjunto de privilegios.
El rol es asignado a usuarios, si le das un privilegio al rol es asumido por los usuarios conectados a
ese rol.

Privilegio 1
Usuario1
Privilegio 2
Rol Usuario 2
Privilegio 3
Usuario 3
Privilegio 4

SYSDBA
Existe el rol SYSDBA, que contiene los privilegios de los administradores.

PUBLIC
ES un rol al cual pertenecen todos los usuarios.
Todos los usuarios que existen pertenecen a PUBLIC.
Todos los privilegios asignados a PUBLIC son asignados a los usuarios.

Como sysdba crear el usuario maria siguiendo los siguientes pasos:


1. SQL> GRANT CREATE SESSION TO PUBLIC
2. SQL> CREATE USER maria
IDENTIFIED BY oracle
3. Iniciar session como maria

¿Porqué maria se pudo conectar y jose no?


Porque se asignó al privilegio PUBLIC el CREATE SESSION.

CREAR ROLES
Procedimiento:
1. Iniciar sesión como sysdba.
2. Crear el role cajero.

SQL> CREATE ROLE cajero;

3. Asignar privilegios al role cajero.

SQL> GRANT create session,create table


TO cajero

4. Este role se puede asignar a diferentes usuarios, se lo asignaremos a jose y maria.

Ing. CIP Edwin Iván Farro Pacífico Pag. 4


Universidad Nacional José Faustino Sánchez Carrión

SQL> GRANT cajero TO maria,jose;

MODIFICAR CONTRASEÑA
Modificar la contraseña de jose, la cual será tiger.

SQL> ALTER USER jose


IDENTIFIED BY tigre;

PRIVILEGIOS DEL OBJETO


Son aquellos que tiene que ver con los esquemas, con aquellos objetos que mantienen
información.
El propietario del objeto es quien los asigna.

¿Cuáles son los objetos vinculados a estos privilegios?


Tblas, vistas, procedimientos.

Tabla Vista Secuencia Procedimiento


Alter X X
Delete X X
Execute X
Update X X
Insert X X
Select X X X
Index X
References X X

Ejercicio
Conceder a jose privilegios para listar el contenido de la tabla emp que pertenece al usuario scott.
Procedimiento:
1. Iniciar sesión como scott.
2. Dar privilegios a jose.

SQL> GRANT select


ON emp
TO jose;

3. Iniciar sesión como jose y listar la tabla emp de scott.

SQL>SELECT * FROM scott.emp;

4. Ahora inserter el siguiente registro:

SQL> INSERT INTO scott.emp(empno,ename,sal)


VALUES(7777,'SALES',1000);

Privilegios insuficientes.

Ejercicio

Ing. CIP Edwin Iván Farro Pacífico Pag. 5


Universidad Nacional José Faustino Sánchez Carrión

Conceder a jose privilegios para insertar o borrar registros de tabla emp que pertenece al usuario
scott.
Procedimiento:

1. Iniciar sesión como scott.


2. Dar privilegios a jose.

SQL>GRANT insert,delete
ON emp
TO jose

3. Ahora inserter el siguiente registro:

SQL> INSERT INTO scott.emp(empno,ename,sal)


VALUES(7777,'SALES',1000);

5. Ahora modificar el salario por 1500

SQL> UPDATE scott.emp


SET sal=1500
WHERE empno=7777

Privilegios insuficientes.

6. Iniciar sesión como scott.


7. Dar privilegios a jose.

Ejercicio
Conceder a jose privilegios para modificar registros de tabla emp que pertenece al usuario scott.
Procedimiento:

1. Iniciar sesión como scott.


2. Dar privilegios a jose.

SQL>GRANT update(ename)
ON emp
TO jose

3. Ahora actualizar el salario.

SQL> UPDATE scott.emp


SET sal=1500
WHERE empno=7777

Privilegios insuficientes.
¿Por qué?
Porque sólo se ha dado permiso para actualizar el atributo ename
Nota: Sólo se pueden especificar que campos con la sentencia SELECT y UPDATE.

Ing. CIP Edwin Iván Farro Pacífico Pag. 6


Universidad Nacional José Faustino Sánchez Carrión

ASIGNAR PRIVILEGIOS A UN DETERMIANDO ROL


Ejercicio
Desde el usuario scoot asignar privilegios para mostrar el contenido de la tabla dept al role cajero.

1. Iniciar sesión como scott y dar privilegios al role cajero.

SQL>GRANT select
ON dept
TO cajero;

2. Iniciar session como maria y ejecutar la siguiente instrucción:

SQL>SELECT * FROM scoot.dept;

3. Iniciar sesión como jose y ejecutar la siguiente instrucción:

SQL>SELECT * FROM scoot.dept;

Hay varias vistas del diccionario de datos del SYSDBA.


ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
USER_ROLE_PRIVS
USER_TAB_SYS_PRIVS
USER_TAB_PRIVS_MADE Privilegios del usuario en la tabla.
USER_SYS_PRIVS Privilegios del sistema otorgados al usuario.

QUITAR PRIVILEGIOS
Lo hace el el administrador como SYSDBA.

Ejercicio 1
Quitar el ROLE cajero a jose y maria.

SQL> REVOKE cajero FROM jose,maria;

Ejercicio 2
Quitar el privilegio de inicio de sesión.

SQL> REVOKE create SESSION FROM public;

Aquí estamos manipulando los esquemas, tablas, vistas, triggers, restricciones, indices y sinónimos.

Para crear un usuario se deben tener en cuenta las siguientes consideraciones:


 Si va a crear objetos (va a tener un esquema) a que TableSpace va a acceder. Un
TableSpace va a tener quota.
 Esta quota debe estar definida en un espacio en cada TableSpace.
 Si va a tener esquema tendrá un tableSpace por defecto. Recuerde cuando jose trató de
crear tabla salió que no tenia privilegios de system, ya que por defecto intentó tomar el
TableSpace de System.
 Se le puede asignar un TableSpace y un Temporary.

Ing. CIP Edwin Iván Farro Pacífico Pag. 7


Universidad Nacional José Faustino Sánchez Carrión

 Se puede crear el usuario y los roles.

Listar los TableSpace que tenemos:

SQL> SELECT * FROM v$tablespace;

Crear un usuario en el TableSpace users.

SQL> CREATE USER pepe


IDENTIFIED BY oracle
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 15M ON users
QUOTA 15M ON example;

SQL> GRANT create session,create table


TO pepe;

SQL> GRANT select ON scott.emp


TO pepe;

Iniciar sesión como pepe:

Ejercicio 1
Crear la siguiente tabla

SQL> create table dist


(iddistrito number(2),
nombdist varchar2(50),
constraint pk_iddistrito primary key(iddistrito));

Por defecto va al user dba_tables;


dba_tables;

Ejercicio 2
Crear una tabla en el TableSpace example.

SQL> CREATE TABLE emp


(empno number(4),
ename varchar2(30),
constraint pk_empno primary key(empno))
tablespace example;

Ejercicio 3
Insertar registros de la tabla emp de scott hacia la tabla emp de pepe.
SQL> INSERT INTO emp(empno,ename)
select empno,ename from scott.emp;

Ing. CIP Edwin Iván Farro Pacífico Pag. 8


Universidad Nacional José Faustino Sánchez Carrión

EXAMPLE
15M pepe.emp

pepe
15M USERS
pepe.dist

Se llenaron las 15M y pepe necesita más espacio.

SQL> ALTER USER pepe


QUOTA 30M ON users;

BORRAR USUARIO.
SQL>DROP USER pepe CASCADE;

No podrá borrar al usuario pepe ya que este debe estar desconectado.

VISTAS DEL SISTEMA


DBA_USERS
DBA_TS_QUOTAS

PRIVILEGIOS
DBA
Administrador de la base de datos.

ANY
Tiene el privilegio “ANY” sólo de los dba porque les da amplitud en cualquier esquema.

CREATE any table.


DROP any table.

Ejercicio

SQL> GRANT CREATE any table TO scott;

WITH ADMIN OPTION


Además de asignar el privilegio le da la posibilidad de asignarlo a otro.

SQL> GRANT CREATE SESSION


TO jose
WITH ADMIN OPTION;

José puede crear sesión y puede asignarlo a otros usuarios.

Ing. CIP Edwin Iván Farro Pacífico Pag. 9


Universidad Nacional José Faustino Sánchez Carrión

PRIVILEGIOS EXCLUSIVOS DEL DBA


shutdown
startup.
alter database
create database
y todo lo que tenga que ver con los tablespace.

Ejercicio
Crear el usuario Manuel con privilegios de administrador.

SQL> GRANT DBA TO manuel;

WITH GRANT OPTION


Privilegios de los objetos. Así como se recibe los objetos se puede asignar.

Crear el usuario ana

SQL> CREATE USER ana


IDENTIFIED BY oracle
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 15M ON users
QUOTA 15M ON example;

SQL> GRANT create session


TO ana;

SQL> GRANT select ON scott.emp


TO ana;

SQL>GRANT INSERT ON scott.emp


TO ana WITH GRANT OPTION

Da privilegio de insert a otros usuarios.

ROLES CON PRIVILEGIOS DE DBA


Crear el role ventas con la clave oracle

SQL> CREATE ROLE ventas


IDENTIFIED BY oracle;

Asignar privilegios al role ventas:

SQL> GRANT ventas TO ana;

Nota: Cerrar sesión ana y volver a iniciar

Ing. CIP Edwin Iván Farro Pacífico Pag. 10


Universidad Nacional José Faustino Sánchez Carrión

Ahora crea la tabla vendedor

SQL>CREATE TABLE vendedor


(idvendedor varchar2(5),
nombvend varchar(2)
contraint pk_idvendedor primary key(idvendedor))

ACTIVAR ROLES
SQL>SET ROLE ventas
IDENTIFIED BY oracle;

Crear ROLES y asignarlos a ana

SQL>CREATE ROLE caja;

SQL> CREATE ROLE compras;

SQL>GRANT caja,compras
TO ana;

QUITAR ROLES
Quitar el role caja.

SQL> REVOKE caja,compras FROM ana;

BORRAR ROLES
Borrar los roles caja y compras

SQL> DROP ROLE compras;

SQL> DROP ROLE caja;

AUDITORIA
Seguimiento de la actividad de la base de datos.
Almacena en una tabla todos los registros.
 Eventos
 Actividad sospechosa

La tabla es au$

Conectarse como sysdba y ejecutar la siguiente instrucción:

SQL>SELECT * FROM sys.aud$;

La auditoria por defecto está apagada.

Para mostrar el estado del sistema de auditoria digitar la siguiente instrucción:

SQL> SHOW PARAMETER audit_trail;

Ing. CIP Edwin Iván Farro Pacífico Pag. 11


Universidad Nacional José Faustino Sánchez Carrión

Para activarla digitar la siguiente instrucción:

SQL> ALTER SYSTEM


SET audit_trail=TRUE
SCOPE=spfile;

Desmontar la base de datos

SQL>shutdown immediate;

Montar la base de datos.

SQL>startup;

Para mostrar el estado del sistema de auditoria digitar la siguiente instrucción:

SQL> SHOW PARAMETER audit_trail;

NAME TYPE VALUE


audit_trail string TRUE

Instrucción para auditar sesiones.

SQL>audit session;

Ejercicio
1. Abrir session como ana.
2. Desde la ventana del sysdba digitar

SQL>SELECT userid FROM sys.aud$;

Ver estructura de la vista:

SQL>DESC sys.aud$;

Visualizar userid de los que tengan éxito.

SQL> AUDIT session WHENEVER successful;

Visualizar userid de los que no tengan éxito.

SQL> AUDIT session WHENEVER NOT successful;

No grabar los inicios de sesión.

SQL> NOAUDIT session;

Ing. CIP Edwin Iván Farro Pacífico Pag. 12


Universidad Nacional José Faustino Sánchez Carrión

Lo que ana hace en las tablas:

SQL> AUDIT table BY ana;

Auditar todo lo que pasa en la tabla emp desde la conexión:

SQL> AUDIT ALL ON scott.emp


BY session;

Auditar delete:

SQL> AUDIT delete ON


scott.emp
BY session;

Auditar un privilegio.

SQL> AUDIT CREATE trigger;

Ing. CIP Edwin Iván Farro Pacífico Pag. 13

Вам также может понравиться