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

EJEMPLO

1. CREAR UN TABLESPACE EN EL CUAL SE VA ALMACENAR TODA LA INFORMACIÓN DEL USUARIO

CREATE TABLESPACE DATA_01 DATAFILE 'D:\BD_ORACLE\DISCO1\DATA_01.dbf' SIZE 500M


AUTOEXTEND ON NEXT 200M MAXSIZE 1024M
DEFAULT STORAGE (INITIAL 10M NEXT 20M PCTINCREASE 10)
PERMANENT
ONLINE
LOGGING;

CREATE TEMPORARY TABLESPACE temp_nomina TEMPFILE 'D:\BD_ORACLE\DISCO1\temp_nomina01.dbf' SIZE 600k


AUTOEXTEND ON NEXT 50K MAXSIZE 700K
extent management local uniform size 100k;

2. BORRAR TABLESPACE: DROP TABLESPACE DATA_01 INCLUDING CONTENTS AND DATAFILES;


3. CREAR UNA TABLA LA CUAL SE VA ALMACENAR EN EL TABLESPACE CREADO

create table CLIENTE


( ID_CLIENTE VARCHAR2(15) not null,
NOMBRE_CLI VARCHAR2(50) not null,
APELLIDO1_CLI VARCHAR2(50) not null,
APELLIDO2_CLI VARCHAR2(50) null,
FECHA_NAC_CLI DATE not null,
EDAD_CLI NUMBER(3,1) not null CHECK(EDAD_CLI >=18) ,
CONSTRAINT PK_CLIENTE PRIMARY KEY ("ID_CLIENTE")
)
TABLESPACE DATA_01;
CREATE INDEX INDEX_APELLIDO1_CLI ON CLIENTE ("APELLIDO1_CLI");

4. CREAR EL PERFIL PARA LIMITAR RECURSOS DEL SISTEMA

create profile PERFIL_BASICO LIMIT


SESSIONS_PER_USER 3 -- Máximo número de sesiones concurrentes permitidas por usuario
CONNECT_TIME 480 -- Tiempo permitido de conexión por sesión, en minutos.
IDLE_TIME 10 -- Tiempo máximo permitido sin actividad para desconectarlo, en minutos
FAILED_LOGIN_ATTEMPTS 2 -- Número de intentos fallidos de conexión, antes de que Oracle ponga la cuenta bloqueada.
PASSWORD_LIFE_TIME 120; -- Número de días de vida de un password

a) actualizar un perfil: alter profile PERFIL_BASICO limit password_life_time 100;


b) Consultar un perfil: select * from dba_profiles where profile = 'PERFIL_BASICO' order by resource_name;
c) borrar un perfil: drop profile PERFIL_BASICO;
d) ASIGNAR UN PERFIL AL USUARIO: ALTER USER USU_CARLOS PROFILE PERFIL_BASICO;
e) Modificar parámetros:

ALTER USER "USU_CARLOS" ACCOUNT UNLOCK;


ALTER USER "USU_CARLOS" ACCOUNT LOCK;
ALTER USER "USU_CARLOS" QUOTA UNLIMITED ON "DATA_01";

5. CREAR USUARIO CON QUOTA ILIMITADA

CREATE USER USU_CARLOS PROFILE "PERFIL_BASICO" IDENTIFIED BY "AE123456"


DEFAULT TABLESPACE "DATA_01" TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK
QUOTA UNLIMITED ON "DATA_01";

6. CREAR USUARIO CON CUOTA DELIMITADA


CREATE USER USU_PEDRO PROFILE "PERFIL_BASICO" IDENTIFIED BY "AE123456"
DEFAULT TABLESPACE "DATA_01" TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK
QUOTA 10M ON "DATA_01";

7. CREAR ROL Y ASIGNAR PRIVILEGIOS DIRECTAMENTE A UN ROL


CREATE ROLE ROL_1

8. ASIGNAR PRIVILEGIOS AL ROL


GRANT select,insert,update,delete ON SYSTEM.CLIENTE TO ROL_1;
GRANT CONNECT TO ROL_1;
GRANT "CREATE SESSION" TO ROL_1; --PRIVILEGIO DE CREAR UNA SESION PARA CONECTARSE CON DICHO USUARIO
GRANT "RESOURCE" TO "ROL_1";
GRANT CREATE ANY PROCEDURE TO "ROL1";
GRANT UPDATE ANY TABLE TO ROL1;

a) Para consultar Roles y privilegios por roles: select * from role_sys_privs


b) ASIGNAR UN ROL AL USUARIO: GRANT ROL1 TO USU_CARLOS:
c) REVOCAR UN PERMISO: REVOKE INSERT ON SYSTEM.CLIENTE FROM aitor;

Consultas
select * from dba_roles
select * from dba_profiles
select * from dba_users
select * from dba_sys_privs where grantee=’USUARIO’;
select * from dba_role_privs where grantee=' USUARIO ';
select * from dba_tab_privs where grantee=' USUARIO ';

9. ASIGNAR PRIVILEGIOS DIRECTAMENTE A UN USUARIO:


GRANT ALTER ANY INDEX TO "USU_CARLOS";
GRANT ALTER ANY SEQUENCE TO "USU_CARLOS";
GRANT ALTER ANY TABLE TO "USU_CARLOS";
GRANT ALTER ANY TRIGGER TO "USU_CARLOS";
GRANT CREATE ANY INDEX TO "USU_CARLOS";
GRANT CREATE ANY SEQUENCE TO "USU_CARLOS";
GRANT CREATE ANY SYNONYM TO "USU_CARLOS";
GRANT CREATE ANY TABLE TO "USU_CARLOS";
GRANT CREATE ANY VIEW TO "USU_CARLOS";
GRANT CREATE ANY PROCEDURE TO "USU_CARLOS";
GRANT CREATE ANY PUBLIC SYNONYM TO "USU_CARLOS";
GRANT CREATE TRIGGER TO "USU_CARLOS";
GRANT CREATE VIEW TO "USU_CARLOS";
GRANT DELETE ANY TABLE TO "USU_CARLOS";
GRANT DROP ANY INDEX TO "USU_CARLOS";
GRANT DROP ANY SYNONYM TO "USU_CARLOS";
GRANT DROP ANY TABLE TO "USU_CARLOS";
GRANT DROP ANY TRIGGER TO "USU_CARLOS";
GRANT DROP ANY VIEW TO "USU_CARLOS";
GRANT INSERT ANY TABLE TO "USU_CARLOS";
GRANT QUERY REWRITE TO "USU_CARLOS";
GRANT SELECT ANY TABLE TO "USU_CARLOS";
GRANT UNLIMITED TABLESPACE TO "USU_CARLOS";

10. Para Quitar Privilegios: REVOKE INSERT ON TABLA FROM USUARIO, REVOKE ALL PRIVI

--PARA VERIFICAR LA CREACION DE USUARIO


a. Consultar: SELECT USERNAME FROM DBA_USERS WHERE USERNAME='SISTEMA_CARLOS'
b. Se crear una nueva conexión ingresando con el nuevo usuario
DEFINICIÓN

Oracle proporciona distintas posibilidades para gestionar la seguridad de la base de datos:


 usuarios y esquemas de la base de datos
 privilegios y roles
 perfiles

CREAR UN TABLESPACE EN EL CUAL SE VA ALMACENAR TODA LA INFORMACIÓN DEL USUARIO

CREATE TABLESPACE DATA_01 DATAFILE 'D:\BD_ORACLE\DISCO1\DATA_01.dbf' SIZE 500M


AUTOEXTEND ON NEXT 200M MAXSIZE 1024M
DEFAULT STORAGE (INITIAL 10M NEXT 20M PCTINCREASE 10)
PERMANENT
ONLINE
LOGGING;

CREATE TEMPORARY TABLESPACE temp_nomina TEMPFILE 'D:\BD_ORACLE\DISCO1\temp_nomina01.dbf' SIZE 600k


AUTOEXTEND ON NEXT 50K MAXSIZE 700K
extent management local uniform size 100k;

create table CLIENTE


( ID_CLIENTE VARCHAR2(15) not null,
NOMBRE_CLI VARCHAR2(50) not null,
APELLIDO1_CLI VARCHAR2(50) not null,
APELLIDO2_CLI VARCHAR2(50) null,
FECHA_NAC_CLI DATE not null,
EDAD_CLI NUMBER(3,1) not null CHECK(EDAD_CLI >=18) ,
CONSTRAINT PK_CLIENTE PRIMARY KEY ("ID_CLIENTE")
)
TABLESPACE DATA_01;

1. Usuarios y esquemas de la base de datos


Para acceder a los datos en una BD Oracle, se debe tener acceso a una cuenta en esa BD. Cada cuenta debe tener una palabra clave
o password asociada. Los passwords es creado cuando se crea un usuario y pueden ser alterados por el DBA o por el usuario mismo. La BD
almacena una versión encriptada del password en una tabla del diccionario llamada dba_users.

CREATE USER aitor


IDENTIFIED BY Pass
DEFAULT TABLESPACE sis2TS
TEMPORARY TALESPACE sis2TMP
QUOTA 50M ON sis2TS
PASSWORD EXPIRE
ACCOUNT UNLOCK;|

CREATE USER USU_CARLOS PROFILE "PERFIL_BASICO" IDENTIFIED BY "AE123456"


DEFAULT TABLESPACE "DATA_01" TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK
QUOTA UNLIMITED ON DATA_01;

2. Privilegios

Los privilegios de una base de datos Oracle se pueden clasificar en privilegios de sistema y privilegios sobre objetos.

• Privilegios de sistema. Permiten a los usuarios realizar una acción en el sistema. Por ejemplo, conectarse a la base de datos (crear sesión),
crear o modificar las estructuras de memoria, procesos y archivos de la base de datos, crear un tablespace o para eliminar una tabla de la base
de datos son privilegios de sistema. Estos privilegios suelen estar asignados sólo a administradores y a programadores.
• Privilegios sobre objetos. Permiten a los usuarios realizar acciones concretas sobre un objeto específico del esquema. Por ejemplo, el
privilegio de insertar, actualizar o borrar filas de una tabla. Los privilegios sobre objetos se asignan a los usuarios finales de forma que puedan
realizar sus acciones permitidas sobre la base de datos.

Permiso Tabla Vista Secuencia Procedimiento


ALTER X X X
UPDATE X X
DELETE X X
EXECUTE X
INSERT X X
SELECT X X X

 GRANT: Asignar privilegio


 ON: Objeto sobre el que aplico los privilegios
 TO: Usuario al que concedo los privilegios
 ALL: Permite asignar todos los permisos
 WITH GRANT OPTION: Permite que el usuario que lo reciba pueda conceder permisos a otros usuarios

GRANT CREATE SESSION, CREATE TABLE TO aitor;


GRANT CREATE PROCEDURE, EXECUTE ANY PROCEDURE TO aitor, luisa;
GRANT CREATE USER TO luisa WITH ADMIN OPTIONS;
GRANT SELECT ON juan.empleados TO aitor;
GRANT UPDATE ANY TABLE TO aitor;
GRANT SELECT, INSERT, UPDATE ON luisa.farmacia, luisa.empleado TO aitor;

REVOKE INSERT ON luisa .farmacia FROM aitor;

3. Roles del Sistema


Lo privilegios se utilizan con el comando GRANT y los privilegios se pueden agrupar formando lo que se conoce como roles. La utilización de los
roles simplifica la administración de los privilegios cuando tenemos muchos usuarios. Los roles pueden ser protegidos con passwords, y pueden
activarse y desactivarse dinámicamente, con lo que constituyen una capa más de seguridad en el sistema.

4. Perfiles
Se utilizan para restringir el uso de recursos del sistema. Cada usuario está asignado a un perfil que especifica las limitaciones sobre distintos
recursos del sistema disponibles para el usuario incluyendo:
• número de sesiones concurrentes
• tiempo de CPU
o Por sesión
o Por sentencias SQL
• Cantidad de operaciones E/S lógicas
o Por sesión
o Por sentencias SQL
• Cantidad de tiempo inactivo por sesión
• Cantidad de tiempo de conexión
• Restricciones de contraseña

SESSIONS_PER_USER 3
CONNECT_TIME 480
IDLE_TIME 10
FAILED_LOGIN_ATTEMPTS 2
PASSWORD_LIFE_TIME 120;
f) actualizar un perfil: alter profile PERFIL_BASICO limit password_life_time 100;
g) Consultar un perfil: select * from dba_profiles where profile = 'PERFIL_BASICO' order by resource_name;
h) borrar un perfil: drop profile PERFIL_BASICO;
i) ASIGNAR UN PERFIL AL USUARIO: ALTER USER USU_CARLOS PROFILE PERFIL_BASICO;

5. Vistas de Consulta

Para Consultar los roles, perfiles y usuarios que existen en la BD. Adicional consultar qué privilegios del sistema, roles y privilegios sobre
objetos tiene concedidos un usuario específico.

select * from dba_roles


select * from dba_profiles
select * from dba_users
select * from dba_sys_privs where grantee=’USUARIO’;
select * from dba_role_privs where grantee=' USUARIO ';
select * from dba_tab_privs where grantee=' USUARIO ';
Parámetros:

1. Creación de Usuarios

El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados.
En Oracle se puede especificar todo lo necesario para abrir una cuenta con el comando CREATE USER. Los parámetros que se le pueden pasar son:

Parámetro Significado

Username Nombre del Usuario (Esquema)

Asigna un perfil al usuario. Los perfiles se utilizan para restringir el uso de recursos
Profile
como el tiempo de CPU, el número de sesiones concurrentes. Si no se especifica
se asigna DEFAULT y tiene asignados todos los límites a UNLIMITED.
Identified by Nos permite especificar su contraseña

Espacio de tablas por defecto en el que los objetos de este usuario serán creados.
Default Tablespace Esto no da al usuario derechos de crear objetos. Si no se especifica se asigna el
tablespace USERS

El espacio de tablas en el que se almacenarán los segmentos temporales de las


Temporary Tablespace ordenaciones. Cuando un usuario ejecuta una sentencia SQL que requiere la
creación de segmentos temporales, se utiliza el tablespace temporal del usuario.
Si no especificamos ninguno se asigna TEMP.
Espacio máximo que puede ocupar en un espacio de tablas. Se pueden definir
cuotas como límites de espacio) para cada tablespace del usuario. Estas cuotas
Quota (int en K/M) permiten controlar la cantidad de espacio de disco consumida por los objetos de
un usuario. Si no se especifica el espacio por defecto es 0 con lo cual el usuario
no podrá crear nada.

ACCONT (LOCK/ UNLOCK) Indica si el usuario tendrá la cuenta bloqueada o no de forma inicial

Especifica que la contraseña asignada al usuario expirará, de esta forma, el propio


PASSWORD EXPIRE
usuario o el DBA deberá asignar una nueva antes de acceder al sistema

Sintaxis para crear un usuario.

CREATE USER nombre


IDENTIFIED BY contraseña
[DEFAULT TABLESPACE nombreTableSpace]
[TEMPORARY TABLESPACE nombreTemp]
[QUOTA INT {K|M} | UNLIMITED ON nombreTableSpace]
[PROFILE perfil]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK | UNLOCK}]
;

Ejemplo No. 1:
CREATE USER aitor
IDENTIFIED BY P@ss
DEFAULT TABLESPACE sis2TS
TEMPORARY TALESPACE sis2TMP
QUOTA 50M ON sis2TS
PASSWORD EXPIRE
ACCOUNT UNLOCK;

Ejemplo No. 2:

SQL> create user perez


2> identified by zerep
3> default tablespace users
4> temporary tablespace temp;

1.1. Modificar usuarios:

Una vez hemos creado un usuario podemos hacer ciertas modificaciones. La sintaxis es muy parecida a la vista anteriormente en
la creación de usuarios.

ALTER USER NombreUsuario


IDENTIFIED BY contraseña
[DEFAULT TABLESPACE nombreTableSpace]
[TEMPORARY TABLESPACE nombreTemp]
[QUOTA INT {K|M} UNLIMITED ON nombreTableSpace]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK | UNLOCK}]
[PROFILE perfil];

Ejemplo:

ALTER USER "USU_CARLOS" ACCOUNT UNLOCK;


ALTER USER "USU_CARLOS" ACCOUNT LOCK;
ALTER USER "USU_CARLOS" QUOTA UNLIMITED ON "DATA_01";

1.2. Eliminar Usuarios: DROP USER nombreUsuario [CASCADE];

CASCADE nos indica que vamos a borrar también TODOS sus objetos antes de proceder a la eliminación del usuario evitando posibles errores. Si el
usuario posee algún objeto solo podremos eliminarlo con CASCADE

Ejemplo: SQL> drop user perez cascade;

2. Privilegios
2.1. Privilegios sobre Objetos

Podemos conceder diferentes permisos a nuestros usuarios y así controlar exactamente qué acciones queremos que puedan realizar y
que acciones no van a ser permitidas. La sintaxis es la siguiente:

GRANT privilegio1 [[,privilegio2, ...] | ALL] [(columna1[,columna2,...])]


[ON usuario[.objeto] | ANY TABLE]
TO {nombreUsuario | rol | PUBLIC}
[WITH GRANT OPTION];

Donde:

GRANT CREATE SESSION, CREATE TABLE TO aitor;


GRANT CREATE PROCEDURE, EXECUTE ANY PROCEDURE TO aitor, luisa;
GRANT CREATE USER TO luisa WITH ADMIN OPTIONS;
GRANT SELECT ON juan.empleados TO aitor;
GRANT UPDATE ANY TABLE TO aitor;
GRANT SELECT, INSERT, UPDATE ON luisa.farmacia TO public;
GRANT INSERT(id,apellidos) ON juan.empleados TO luisa;

 ON: Objeto sobre el que aplico los privilegios


 TO: Usuario al que concedo los privilegios
 ALL: Permite asignar todos los permisos
 WITH GRANT OPTION: Permite que el usuario que lo reciba pueda conceder permisos a otros usuarios

Algunos de los privilegios más usados son:

Permiso Tabla Vista Secuencia Procedimiento


ALTER X X X
UPDATE X X
DELETE X X
EXECUTE X
INSERT X X
SELECT X X X

Ejemplo:

GRANT SELECT ON juan.empleados TO aitor;


GRANT UPDATE ANY TABLE TO aitor;
GRANT SELECT, INSERT, UPDATE ON luisa.farmacia TO public;
GRANT INSERT(id,apellidos) ON juan.empleados TO luisa;

2.2. Privilegios sobre el Sistema

Podemos también asignar ciertos permisos sobre el sistema a los usuarios que tengamos creados en nuestra base de datos. Los
privilegios del sistema no se asignan sobre objetos concretos sino que especifican que acciones se podrán realizar sobre el sistema
gestor de base de datos. La sintaxis:

GRANT permiso1[,permiso2,...]
TO nombreUsuario[,nombreUsuario2,...] | nombreRol;

Dónde permiso puede ser alguno de los siguientes:


 create
session: Permite conectarse a la base de datos
table: Permite crear tablas
sequence: Permite crear secuencias
view: Permite crear vistas
trigger: Permite crear disparadores
procedure: Permite crear procedimientos
profile: Permite crear perfiles
synonym: Permite crear sinónimos

 execute any procedure: Permite ejecutar cualquier procedimiento


 create
user: Permite crear usuarios. WITH ADMIN OPTIONS permite que el nuevo usuario tenga permisos administrativos, por ejemplo,
para crear nuevos usuarios.
role: Permite crear roles
 drop
table: Permite eliminar tables
sequence: Permite eliminar secuencias
view: Permite eliminar vistas
trigger: Permite eliminar disparadores
procedure: Permite eliminar procedimientos
profile: Permite eliminar perfiles
synonym: Permite eliminar sinónimos
user: Permite eliminar usuarios
role: Permite eliminar roles
session: Permite eliminar sesiones
 grant
privilege: Permite asignar privilegios
role: Permite asignar roles

Ejemplo:

GRANT CREATE SESSION, CREATE TABLE TO aitor;


GRANT CREATE PROCEDURE, EXECUTE ANY PROCEDURE TO aitor, luisa;
GRANT CREATE USER TO luisa WITH ADMIN OPTIONS;
GRANT SELECT ON juan.empleados TO aitor;
GRANT UPDATE ANY TABLE TO aitor;
GRANT SELECT, INSERT, UPDATE ON luisa.farmacia TO public;
GRANT INSERT(id,apellidos) ON juan.empleados TO luisa;

Conceder permisos de DBA (DataBase Administrator)

GRANT DBA TO NombreUsuario;

2.3. Quitar Privilegios sobre Objetos

REVOKE permiso1[,permiso2,…] | ALL [PRIVILEGES]


ON [usuario.]objeto
FROM nombreUsuario | rol | PUBLIC [,nombreUsuario | nombreRol,...];

Ejemplo:
REVOKE INSERT on employees FROM luisa;

Nota: En los privilegios sobre objetos, si se quita el permiso de insert sobre employees a luisa, automáticamente se quita el permiso a todos
los usuarios a los que luisa les ha concedido dicho permiso.

Ejemplo:

GRANT SELECT ON farmacias TO aitor WITH GRANT OPTIONS;


CONNECT aitor/P@ss
GRANT SELECT ON farmacias TO luisa WITH GRANT OPTIONS;
CONNECT luisa/P@ssL
GRANT SELECT ON farmacias TO hugo WITH GRANT OPTIONS;
CONNECT system/SysPaS

REVOKE SELECT ON farmacias FROM luisa;

2.4. Quitar Privilegios sobre Sistema

REVOKE permiso1[,permiso2,…] | ALL [PRIVILEGES]


FROM nombreUsuario | rol | PUBLIC [,nombreUsuario | nombreRol,...];
Ejemplo:

REVOKE ALL PRIVILEGES FROM aitor;


REVOKE CREATE VIEW FROM luisa;

Nota: En los privilegios de sistema, se quita el permiso de crear vistas a luisa pero no a los usuarios a los que éste haya concedido el privilegio

A continuación un listado de los privilegios más usados: Para más información acceder al link:
http://docs.oracle.com/cd/E11882_01/timesten.112/e21642/privileges.htm#TTSQL338

Privilegio Capacidades

Manejo de Objetos ...

CREATE ANY INDEX Crear cualquier índice.

CREATE [PUBLIC]
Crear sinónimos [públicos].
SYNONYM

Crear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener asignado el
CREATE [ANY] TABLE
privilegio UNLIMITED TABLESPACE.

CREATE [ANY] VIEW Crear vistas.

ALTER ANY INDEX Alterar cualquier índice.

ALTER ANY TABLE Alterar cualquier tabla

DROP ANY INDEX Borrar cualquier índice.

DROP ANY SYNONYM Borrar cualquier sinónimo.

DROP PUBLIC SYNONYM Borrar sinónimos públicos.

DROP ANY VIEW Borrar cualquier vista.

DROP ANY TABLE Borrar cualquier tabla.

SELECT ANY TABLE Efectuar selecciones de cualquier tabla o vista.

INSERT ANY TABLE Insertar en cualquier tabla o vista.

DELETE ANY TABLE Borrar filas de cualquier tabla o vista, y también truncar.

ALTER SESSION Alterar los parámetros de la sesión.

CREATE SESSION Conectarse a la BD.

Gestión de la BD ...

CREATE PROFILE Crear perfiles de usuario.


CREATE ROLE Crear roles.

CREATE ROLLBACK
Creación de segmentos de rollback.
SEGMENT

CREATE TABLESPACE Crear espacios de tablas.

CREATE USER Crear usuarios.

ALTER PROFILE Alterar perfiles existentes.

ALTER ANY ROLE Alterar cualquier rol.

ALTER ROLLBACK
Alterar segmentos de rollback.
SEGMENT

ALTER TABLESPACE Alterar espacios de tablas.

ALTER USER Alterar usuarios.

DROP PROFILE Borrar un perfil existente.

DROP ANY ROLE Borrar cualquier rol.

DROP ROLLBACK
Borrar un segmento de rollback existente.
SEGMENT

DROP TABLESPACE Borrar un espacio de tablas.

DROP USER Borrar un usuario. Añadir CASCADE si el usuario posee objetos.

ALTER DATABASE Permite una sentencia ALTER DATABASE.

GRANT ANY PRIVILEGE Otorgar cualquiera de estos privilegios.

GRANT ANY ROLE Otorgar cualquier rol a un usario.

UNLIMITED TABLESPACE Puede usar una cantidad de almacenamiento ilimitada.

DROP PROFILE Borrar un perfil existente.


3. Roles

Un rol es una agrupación de permisos. Gracias a los roles, podemos juntar ciertos permisos en un solo rol y concederlo a un usuario o grupo de
usuarios. En la instalación se crea un rol llamado OSOPER que sirve para los operarios de la máquina donde está la BD y permite realizar copias
de seguridad en frio y en caliente. Los privilegios de OSOPER son STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE
BACKUP, ARCHIVE LOG, RECOVER y RESTRICTED SESSION.

Se pueden crear nuevos roles. Por ejemplo, podemos crear un rol llamado creadorCuentas que sólo pueda crear usuarios y no pueda realizar ninguna
otra operación de DBA. Las sentencias que permiten hacer esto son las siguientes:

SQL> create role creadorCuentas;


SQL> grant create session, create user to creadorCuentas;

Oracle por defecto tienen tres roles de sistema: CONNECT, RESOURCE y DBA, cuyos privilegios son:

Rol Privilegios

alter session, create session, create cluster, create table, create view, create synonym, create sequence, create database
CONNECT
link

RESOURCE create cluster, create table, create procedure, create sequence, create trigger

DBA todos los privilegios de sistema con la opcion with admin option

3.1. Sintaxis Creación de ROLES: CREATE ROLE nombreRol


3.2. Borrar ROLEs: DROP ROLE nombreRol;
3.3. Dar permisos a ROLEs

GRANT permiso1[,permiso2,...]
ON [usuario.]objeto
TO nombreRole;

Ejemplo:

GRANT SELECT, UPDATE ON scott.emp TO miRole;


GRANT SELECT, INSERT, DELETE, UPDATE ON scott.dept TO miRole;
GRANT SELECT ON scott.salgrade TO miRole;
GRANT SELECT ON scott.bonus TO miRole;

3.4 Asignar un rol a un usuario: GRANT nombreRol TO nomreUsuario. Ejemplo: GRANT miRole TO aitor;

4. Perfiles de Usuario
Los perfiles se utilizan para limitar la cantidad de recursos del sistema y de la BD disponibles para un usuario. Si no se definen perfiles para un usuario
se utiliza el perfil por defecto, que especifica recursos ilimitados. Los perfiles se crean con el comando CREATE PROFILE y se pueden modificar con
la sentencia ALTER PROFILE.

Los recursos que pueden ser limitados por perfil son los siguientes:
• número de sesiones concurrentes
• tiempo de CPU
o Por sesión
o Por sentencias SQL
• Cantidad de operaciones E/S lógicas
o Por sesión
o Por sentencias SQL
• Cantidad de tiempo inactivo por sesión
• Cantidad de tiempo de conexión
• Restricciones de contraseña

COMPOSITE_LIMIT
Suma del máximo de CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION y PRIVATE_SGA. Si este límite es excedido, Oracle aborta
la sesión y regresa un error.

CONNECT_TIME
Tiempo permitido de conexión por sesión en minutos.

CPU_PER_CALL
Máximo tiempo de CPU por llamada en centésimas de segundo.

CPU_PER_SESSION
Máximo tiempo de CPU por sesión en centésimas de segundo.

IDLE_TIME
Tiempo máximo permitido sin actividad por el usuario antes de ser desconectado. Se expresa en minutos.

LOGICAL_READS_PER_CALL
Máximo número de bloques de base de datos leídos por llamada.

LOGICAL_READS_PER_SESSION
Máximo número de bloques de base de datos leídos por sesión.

PRIVATE_SGA
Máxima cantidad de bytes de espacio privado reservado en la SGA. Se puede expresar en el formato enteroK para kilobytes o enteroM para
megabytes.

SESSIONS_PER_USER
Máximo número de sesiones concurrentes permitidas por usuario.

FAILED_LOGIN_ATTEMPTS
Número de intentos fallidos de conexión de un usuario, antes de que Oracle ponga la cuenta bloqueada.

PASSWORD_GRACE_TIME
Número de días de gracia para realizar un cambio de password de nuestra cuenta. Si en el periodo de tiempo delimitado no fue cambiado el password,
el password expira.

PASSWORD_LIFE_TIME
Número de días de vida de un password.

PASSWORD_LOCK_TIME
Número de días que permanecerá bloqueado un usuario después de rebasar el límite FAILED_LOGIN_ATTEMPTS.

PASSWORD_REUSE_MAX
Número de veces que debe cambiar una contraseña antes de poder ser re-usada la original.

PASSWORD_REUSE_TIME
Número de días que tienen que pasar para poder re-usar un password.
PASSWORD_VERIFY_FUNCTION
En este parámetro, se puede especificar un script para validar el password. Por ejemplo, que tenga una determinada cantidad de caracteres, que
tenga letras y números, etcétera.

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