Vous êtes sur la page 1sur 25

Instituto Profesional DuocUC

Escuela de Ingeniera

Administrando Usuarios

Jaime Amigo P. 2006, Santiago - Chile


Instituto Profesional DuocUC
Escuela de Ingeniera

Objetivos
Despus de completar esta leccin, usted deber saber:
Crear y manejar cuentas de usuarios de bases de
datos
Crear y manejar roles
Otorgar y Revocar privilegios
Controlar los recursos usados por usuarios

2
Instituto Profesional DuocUC
Escuela de Ingeniera

Cuentas de Usuarios de Bases de Datos

Cada cuenta de usuario de base de datos debe


tener un:
Nombre de usuario nico
Mtodo de Autentificacin
Tablespace Default
Tablespace Temporal
Perfil de Usuario

Cuentas de Usuarios de Bases de Datos


Una de las tareas elementales de un DBA es la de Administrar Usuarios. Cada usuario que se
conecta a una base de datos debe tener una cuenta. Cuentas genricas son dificiles de auditar y es una
mala prctica en algunas corporaciones, por tanto, se debe evitar crear este tipo de cuentas (consultor,
gerente, ventas, consulta, etc). Se puede crear una nueva cuenta de usuario de base de datos con el
comando CREATE USER. Cuando se crea una nueva cuenta, como mnimo se debe asignar un nombre
nico y un mtodo de autentificacin. Opcionalmente, se puede otorgar atributos adicionales a la cuenta
de usuario. Para cambiar o asignar nuevos atributos a una cuenta existente se utiliza el comando ALTER
USER.
Cada cuenta de usuario tendr:
Un nombre de usuario nico. Este nombre no puede exceder los 30 caracteres, no puede contener
caracteres especiales, y debe comenzar con una letra.
Un mtodo de autentificacin. El mtodo ms comn de autentificacin es una contrasea, pero Oracle
10g soporta varios otros tipos incluyendo biomtrico, certificados y la autentificacin simblica (token).
Un tablespace por defecto. Un lugar en donde el usuario crear objetos si el usuario no especifica otro
tablespace. Que el usuario tenga un tablespace por defecto no implica que el usuario tiene acceso a
crear objetos en dicho tablespace o cuota de espacio dentro del tablespace en el cual crear. Ambos
privilegios se otorgar por separado.
Un tablespace temporal. Un lugar en donde el usuario puede crear objetos temporales tales como sorts
y tablas temporales.
Un perfil de usuario. Un conjunto de recursos y restricciones de password asignadas al usuario

3
Instituto Profesional DuocUC
Escuela de Ingeniera

Creando un Usuario
Seleccione Users desde la pgina Administration. Haga
Click en el botn Create.

Creando un Usuario
En Oracle Enterprise Manager se puede gestionar una lista de usuarios de base
de datos que tienen permitidos accesos. Para ello existe una plantilla Users en la
cual se puede crear, borrar y modificar los seteos para un usuario.
La plantilla de propiedades de usuarios consiste de varias pginas. Se puede
crear o editar seteos de seguridad para el usuario de la base de datos
Para crear un usuario:
1. Navegar a la homepage Database.
2. Seleccione Administration, luego baje hasta la seccin de Schema y luego a
Users & Properties. Finalmente seleccione Users haciendo un click. Aparecera
una pgina que contiene la lista de usuarios vlidos para la base de datos.
3. Hacer click en Create para crear un nuevo usuario.

4
Comando SQL para crear un usuario

CREATE USER user


IDENTIFIED [BY password | EXTERNALLY]
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE tablespace]
[QUOTA {integer [K|M] | UNLIMITED} ON tablespace
[QUOTA {integer [K|M] | UNLIMITED} ON tablespace
]]
[PASSWORD EXPIRE]
[ACCOUNT { LOCK | UNLOCK}]
[PROFILE {profile | DEFAULT}]

Dnde
user: Nombre del usuario
BY password: especifica que para que el usuario se autentifique con la base de datos necesita
ingresar una password mientras se logea
EXTERNALLY: indica que el usuario se autentifica por el sistema operativo
DEFAULT TEMPORARY tablespace: Indica el default o tablespace temporal para el usuario
QUOTA: Define el maximo de espacio permitido para crear objetos propiedad del usuario
sobre dicho tablespace. La cuota se puede definir en KB o MB. UNLIMITED indica que el
usuario tiene espacio ilimitado para crear objetos sobre dicho tablespace.
PASSWORD EXPIRE: Fuerza al usuario a cambiar la password cuando se logea a la base de
datos usando SQL`Plus (esta opcin solo es valida si el usuario se autentifica por la base de
datos)
ACCOUNT LOCK/UNCLOCK: Permite bloquear o desbloquear una cuenta de usuario,
UNLOCK es el valor por default
PROFILE: Es usado par controlar el uso de recursos y especificar el mecanismo de control de
password para el usuario
Las password son mantenidas por Oracle en el diccionario de datos.

5
Instituto Profesional DuocUC
Escuela de Ingeniera

Perfiles y Usuarios

Usuarios son
asignados solo a un
perfil (Profile) a la
vez.

Perfiles:
Control del uso
de recursos
Administracin
de passwords

Perfiles y Usuarios
Los perfiles definen un conjunto de limitaciones de recursos al uso de la base de datos
y de la instancia. Los perfiles tambien imponen limitaciones sobre la password (largo,
fecha de expiracin, etc). Cada usuario esta asignado a un perfil y puede tener
asociado solo un perfil a la vez.

Existe un perfil por defecto bsico que sirve de base para todos los otros perfiles.
Como se observa en la figura, existen limitaciones sobre el uso de CPU por sesin,
CPU por llamadas o tiempo mximo de conexin, etc.
Los perfiles solo pueden imponer limitaciones de uso de recursos a usuarios, si el
parmetro de inicializacin RESORCE_LIMIT. Con RESOURCE_LIMIT seteado a
FALSE, las limitaciones del perfil son ignoradas.
Los perfiles permiten al DBA controlar los siguientes recursos del sistema:
CPU. El recurso CPU puede ser limitado por sesin. Un factor CPU/session de
1000 significa que si una sesin individual esta usando este perfil de consumo
mas de 10 segundos de tiempo de CPU, el usuario recibe el siguiente error: ORA-
02392: exceeded session limit on CPU usage, you are being logged off

6
Perfiles y Usuarios (continuacin)
Una limitacin por llamada es la misma cosa, pero en vez de limitar la sesin total del
usuario, evita que cualquier comando simple consuma mucha CPU. Si CPU/Call esta
limitado y el usuario excede la limitacin, el comando se aborta y aparece el siguiente
error:
ORA-02393: exceeded call limit on CPU usage
Network/Memory: Cada sesion de base de datos consumo memoria del sistema
y recursos de red.
- Connect Time: Cuantos minutos un usuario puede estar conectado antes
de ser automticamente desconectado por el servidor.
- Idle Time: Cuantos minutos una sesion de usuario puede estar IDLE antes
de ser desconectada. El tiempo IDLE es calculado solamente por el
proceso servidor. El tiempo Idle no considera largas consultas y otras
aplicaciones.
- Concurrent Sessions: Cuantas sesiones concurrente pueden ser creadas
usando la cuenta de la base de datos.
- Private SGA: Limita la cantidad de espacio consumido dentro de la SGA
para ordenamientos por ejemplo. Esta restriccin solo tiene efecto cuando
se usan servidores compartidos
Disk I/O: Limita la cantidad de datos que un usuario puede leer en la sesin.
Reads/Session y Reads/Call colocan un lmite sobre el nmero total de lecturas
de memoria y disco. Esto puede utilizarse para asegurar que no habran
sentencias que consuman mucho I/O. Los perfiles tambin permiten
combinaciones CPU/session, reads/session, connect time, y private SGA.

7
Instituto Profesional DuocUC
Escuela de Ingeniera

Autentificacin de Usuarios
Password
External
Global

Autentificacin de Usuarios
Autentificar significa verificar la identidad de alguien (usuario, dispositivo u otra
entidad) que desee usar datos, recursos o aplicaciones. Validando esa identidad
establece una relacin de confianza para otras interacciones. La autentificacin
tambin establece . Despus de la autentificacin, el proceso permite o limita niveles
de acceso sobre entidades.
Cuando se crea una cuenta de usuario se debe decidir la tcnica de autentificacin a
utilizar, sin embargo, esta puede ser modificada despus.
Password: Tambin referencia como autentificacin por la base de datos, crea cada
usuario con una password asociada que debe ser entregada cuando el usuario intenta
establecer una conexin. Cuando se setea una password, es posible expirarla
inmediatamente, lo que fuerza al usuario a modificarla despus de su primer login. Si
se planifica que las password de usuario expiren, se debe tener certeza que los
usuarios tienen la posibilidad de cambiar la password. Algunas aplicaciones finales de
usuarios no tienen esta funcionalidad.

8
Autentificacin de Usuarios (continuacin)
External: Tambin referenciada como autentificacin por sistema operativo, usuarios
pueden conectarse a Oracle mas convenientemente sin especificar un usuario o
contrasea. Con este tipo de autentificacin, la base de datos confa en el sistema
operativo o servicio de autentificacin de red para restringir el acceso de las cuentas
a la base de datos. Una password de base de datos no debe ser usada con este tipo
de login. Si el sistema operativo o servicio de autentificacin de red lo permite, se
puede tener este tipo de autentificacin de usuarios. Para poder realizarlo, es preciso
setear el parmetro de inicializacin OS_AUTHENT_PREFIX y usar este prefijo en
las cuentas de Oracle. El parmetro OS_AUTHENT_PREFIX define un prefijo que
Oracle agrega al comienzo de cada cuenta de usuario del sistema operativo. El valor
por defecto es OPS$ por compatibilidad con versiones previas de Oracle. Oracle
compara el prefijo username con el username Oracle en la base de datos cuando un
usuario intenta conectarse. Por ejemplo, asumamos que OS_AUTHENT_PREFIX
esta seteado como sigue:
OS_AUTHENT_PREFIX=OPS$
Si un usuario con una cuenta de sistema operativo llamada tsmith esta
conectndose a una base de datos Oracle y esta autentificado en el sistema
operativo, Oracle chequea que esta corresponda a un usuario de base de datos
llamado OPS$tsmith y si es as, permite al usuario conectarse. Todas las referencias
a un usuario autentificado por sistema operativo deben incluir el prefijo, como se ha
visto OPS$tsmith.
Note: El texto del parmetro de inicializacin OS_AUTHENT_PREFIX es case
sensitive (sensible a maysculas y minsculas).
Global: Es una autentificacin fuerte a travs de la opcin Oracle Advanced Security,
que permite a los usuarios ser identificados a travs del uso de dispositivos
biomtricos, certificados X.509, kerberos, Radius, dispositivos token y Oracle Internet
Directory.

9
Instituto Profesional DuocUC
Escuela de Ingeniera

Tablespace Default, Temporary y Locking

Default: Localizacin Default de objetos de bases de


datos (Vistas, Indices, Triggers, etc)
Temporary: Usados para Ordenamiento (sorting)

Default, Temporary Tablespaces y Locking


Cada usuario tiene asignado un tablespace por default. El tablespace default es el
tablespace donde los objetos son creados si no se especifica en la clusula CREATE
TABLE o INDEX el tablespace durante la creacin de los mismos. Si no se especifica
un tablespace por default, el sistema define uno.
El tablespace temporary es aquel donde ocurren las acciones de ordenamiento. Hay
varias maneras que estos ordenamientos tienen lugar, por ejemplo cuando se crea un
ndice o se usa la clusula ORDER BY, GROUP BY en una sentencia SELECT o
SELECT DISTINCT, MERGE JOIN o CREATE INDEX. Sino se especifica ste, el
sistema define uno a utilizar.
Cuando se crea un usuario, ste puede tener un estado de bloqueado o desbloqueado.
Si esta bloqueado, significa que no puede logearse a la base de datos. Todas las
cuentas nuevas de usuario tiene asignado por defecto desbloqueado (unlocked).

10
Instituto Profesional DuocUC
Escuela de Ingeniera

Usuarios de Base de Datos y Schemas

La coleccin de objetos Schema Objects


propiedad de un usuario Tables
es llamado Schema. Triggers
Un usuario puede estar Indexes
asociado solo un Views
Schema. Sequences
Username y schema a Stored program units
menudo son usados Synonyms
alternativamente. User-defined data types
Database links

Usuarios de base de datos y Schemas


Un esquema (schema) es una coleccin de objetos de una base de datos propiedad de
un usuario. Un esquema tiene el mismo nombre que el usuario propietario. Los
Schema objects incluyen estructuras tales como: tablas, vistas, indices y cdigo Java o
PL/SQL. No hay relacin entre tablespace y esquemas. Objetos en el mismo esquema
pueden estar en tablespace diferentes y un tablespace puede contener objetos de
diferentes esquemas. Cuando se crea un usuario de base de datos, un esquema
correspondiente con el mismo nombre se crea para ese usuario. Un usuario puede
estar asociado slo a un esquema del mismo nombre y en ese caso, username y
schema a menudo son usados alternativamente.
Los Schema objects que ocupan espacio dentro de la base de datos (tales como tablas
e indices) son creados en el tablespace por defecto a menos que se especifique un
lugar diferente. Los propietario de esquemas tiene control total de sus objetos dentro
de este y pueden otorgar permisos a otros usuarios para usar dichos objetos.

11
Instituto Profesional DuocUC
Escuela de Ingeniera

Checklist para Crear Usuarios

Seleccionar un perfil
Seleccionar una tcnica de autentificacin
Asignar un tablespace Default y Temporal
Otorgar privilegios y roles al usuario
Decidir las cuotas sobre el tablespace

Checklist para creacin de usuarios


Al crear un usuario, el DBA debe asignar un perfil, seleccionar un mtodo de
autentificacin y asignar un tablespace temporal y por defecto. Por defecto cuando un
usuario es creado, stos no tienen ningn privilegio, lo que significa que no tienen
habilitadas acciones para realizar sobre la base de datos.
Database Control automticamente otorga algunos pocos privilegios que permiten a un
usuario conectarse y crear algunos objetos en la base de datos. Sin embargo, si un
usuario no tiene cuota en ningn tablespace, el usuario no podra crear objetos.
Un usuario que no tiene asignado ningn privilegio, solo puede acceder a los objetos
creados por el mismo.

12
Instituto Profesional DuocUC
Escuela de Ingeniera

Privilegios

Hay 2 tipos de privilegios:


System: Habilita al usuario a ejecutar acciones
particulares en la base de datos
Object: habilita al usuario a accesar y manipular
un objeto especfico

Privilegios
Un privilegio es un derecho a ejecutar un tipo de sentencia SQL en particular o acceder
a objetos de otro usuario. Oracle posee un fino detalle de privilegios que permiten o no
a un usuario ejecutar acciones en una base de datos. Los privilegios se dividen en 2
catagerias:
Privilegios de Sistema. Cada privilegio de sistema permite a un usuario ejecutar
una operacin en particular en la base de datos o operaciones sobre clases de
base de datos; por ejemplo, el privilegio de crear tablespace es un privilegio de
sistema. Los privilegios de sistema pueden ser otorgados por el DBA o por
alguien que explicitamente tenga el permiso de administrador. Hay sobre 100
privilegios de sistema disponibles.
Privilegios de Objetos. Estos permiten a un usuario ejecutar una accin
particular sobre un objeto, tal como tabla, vista, secuencia, procedure, funcin o
package. Sin permisos especficos, los usuarios pueden accesar solo a sus
objetos (los creados por ellos mismos). Los privilegios de objetos puede ser
otorgados por el dueo del objeto, por el DBA o por alguien que explictamente se
le otorg privilegio sobre el objeto.

13
Instituto Profesional DuocUC
Escuela de Ingeniera

Privilegios de Sistema

Privilegios de Sistema
Para otorgar Privilegios de Sistema, haga click sobre Systems Privileges, seleccione el
privilegio apropiado desde la lista disponible y muevalo a caja Selected System
Privileges haciendo click en Move arrow.
Otorgar un privilegio con la clusula ANY significa que el privilegio cruza esquemas.
Por ejemplo, el privilegio CREATE TABLE permite al usuario crear una tabla, pero solo
dentro de su propio esquema. El privilegio SELECT ANY TABLE permite a un usuario
hacer select sobre tablas propiedad de otros usuarios.
Seleccionado el checkbox Admin Option permite al usuario administrar el privilegio y
otorgar privilegios de sistema a otros usuarios.
Sea cuidadoso al considerar requerimientos de seguridad antes de otorgar permisos de
sistema. Algunos privilegios de sistema son usualmente otorgados solo a
administradores:
RESTRICTED SESSION: Este privilegio permite al usuario logearse an si la
base de datos ha sido abierta en modo restringuido.

14
Privilegios de Sistema (continuacin)
SYSDBA y SYSOPER: Esos privilegios permiten al usuario bajar, subir, ejecutar
recuperacin y otras labores administrativas en la base de datos.
DROP ANY object: El privilegio DROP ANY permite al usuario borrar objetos de
los cuales no es dueo.
CREATE, MANAGE, DROP, ALTER TABLESPACE: Usuarios no administradores
NO DEBEN tener control sobre tablespaces.
CREATE ANY DIRECTORY: Oracle permite a desarrolladores llamar a cdigo
externo (por ejemplo, una librera C) desde un PL/SQL. Como medida de
seguridad, el directorio del sistema operativo donde reside el cdigo debe estar
ligado a un directorio virtual de objetos Oracle. Con el privilegio CREATE ANY
DIRECTORY, un usuario puede potencialmente llamar objetos de cdigo
inseguro.
EXEMPT ACCESS POLICY: Este privilegio permite a un usuario bypasear
funciones de seguridad colocadas en tablas o vistas.
GRANT ANY OBJECT PRIVILEGE: Este privilegio permite al usuario otorgar
permisos a objetos sobre objetos de los cuales no es dueo.
ALTER DATABASE and ALTER SYSTEM: Usuarios no administradores, no
deben tener permisos para cambiar la base de datos o instancia.

15
Instituto Profesional DuocUC
Escuela de Ingeniera

Privilegios de Objetos

Para otorgar privilegios de


objetos:
Seleccionar el tipo de
objeto
Seleccionar los objetos
Seleccionar privilegios

Privilegios de Objetos
Para otorgar privilegios de objetos, hacer click en el link Object Privileges, seleccionar
el tipo de objeto que tu deseas otorgar privilegios y hacer click en el boton ADD. Elija
los objetos a los que desea otorgar privilegios entrando el username.object name o
seleccionndolos desde el listado.
Luego, seleccione el privilegio apropiedo del listbox Available Privileges y haga click en
el botn Move.
Seleccione Grant del checkbox de la lista de privilegios de objetos para permitir al
usuario conceder a otros usuarios el mismo acceso.

16
Instituto Profesional DuocUC
Escuela de Ingeniera

Asignando Cuotas a Usuarios


Usuarios que no tienen el privilegio de sistema
UNLIMITED TABLESPACE deben tener una cuota
antes que ellos puedan crear objetos sobre dicho
tablespace. Cuotas puede ser:
Unlimited (ilimitadas)
Un valor especfico en megabytes o kilobytes

Asignando cuotas a usuarios


Cuota es un espacio asignado a un tablespace. Por defeault, un usuario no tiene cuota
en ningun tablespace. Usted tiene tres opciones para proveer cuotas a un usuario
sobre un tablespace.
Unlimited: Permite al usuario que use espacio sobre el tablespace sin restriccin.
Value: Es un valor en kilobytes o megabytes que el usuario puede usar. Esto no
garantiza que el espacio esta disponible para el usuario. Este valor puede ser
mayor o menor, que el espacio actual disponible en el tablespace.
UNLIMITED TABLESPACE system privilege: Este privilegio de sistema elimina
todas las cuotas individuales sobre el tablespace y da al usuario cuota ilimitadas
sobre todos los tablespaces, incluyendo a SYSTEM y SYSAUX. Este privilegio
debe ser otorgado con precaucin.
Usted no debe otorgar cuota sobre tablespace a los usuarios SYSTEM o SYSAUX.
Normalmente, solo los usuarios SYS y SYSTEM deben ser los habilitados para crear
objetos en el tablespace SYSTEM o SYSAUX.
Los usuarios no necesitan tener cuota sobre su tablespace temporal o cualquier
tablespace de undo.

17
Instituto Profesional DuocUC
Escuela de Ingeniera

Asignando Roles a Usuarios

Asignando roles a usuarios


Un rol es un conjunto de privilegios que pueden ser otorgados a usuarios o otros roles.
Usted puede utilizar roles para administrar privilegios de bases de datos. Se pueden
agregar privilegios a un rol y entonces otorgarlos a un usuario. El usuario puede
permitir habilitar el rol y ejecutar los privilegios otorgados por el rol. Un rol contiene
todos los privilegios otorgados al rol y todos los privilegios de otros roles asignados a
este.
Por defecto, Enterprise Manager automticamente otorga el rol CONNECT a los
nuevos usuarios. Esto permite a los usuarios conectarse a la base de datos y crear
objetos en su propio esquema.

18
Instituto Profesional DuocUC
Escuela de Ingeniera

Roles

Usuarios
Michelle Ricardo Augusto

Roles HR_MGR HR_VENDEDOR

Delete Select Update


Privilegios
empleado empleado empleado

Insert
empleado

Roles
En la mayora de los sistemas concede privilegios individuales a cada usuario es una actividad
muy consumidora de tiempo y existe una alta probabilidad de error. Oracle provee mecanismos
para administrar privilegios a travs de roles. Los roles son grupos nombrados de privilegios
relacionados que estn otorgados a usuarios y a otros roles. Estn diseados para facilidad la
administracin de privilegios y por ende, mejoran la seguridad.
Caractersticas de los roles
Privilegios se otorgar y revocan a roles, como si el rol fuese un usuario.
Los roles pueden ser otorgados o revocados de usuario o de otros roles como si fuesen
privilegios de sistema.
Un rol puede consistir de ambos, privilegios de sistema y objetos.
Un rol puede ser habilitado o deshabilitado para cada usuario que se le otorgue un rol.
Un rol puede requerir una password para ser habilitado.
Los roles no son propiedad de nadie y no estn en ningn esquema.
En el ejemplo de la figura, el rol HR_VENDEDOR se le ha asignado privilegio de SELECT y
UPDATE sobre la tabla empleado. El rol HR_MGR (Administrador) se le ha asignado
privilegios de DELETE e INSERT sobre la tabla empleado y el rol de HR_VENDEDOR. El
administrador tiene otorgado el rol HR_MGR y puede ahora, realizar select, delete, insert, y
update a la tabla empleado.

19
Instituto Profesional DuocUC
Escuela de Ingeniera

Beneficios de usar Roles

Facilidad de administracion de Privilegios


Administracin dinmica de privilegios
Disponibilidad selectiva de privilegios
Pueden ser otorgados a travs del Sistema
Operativo

Beneficios de usar roles


Facilidad de administracin de privilegios
Usar roles simplifica la administracin de privilegios. Concediendo el mismo conjunto
de privilegios a varios usuarios a la vez, se puede otorgar un nuevo privilegio a un rol y
el rol otorgrselo a cada usuario.
Administracin dinmica de privilegios.
Si el privilegio asociado con un rol es modificado, todos los usuarios a quien se les
otorgo dicho rol adquieren los privilegios modificados automtica e inmediatamente.
Disponibilidad Selectiva de Privilegios
Los roles pueden ser habilitados o deshabilitados ajustando privilegios temporalmente.
Habilitar un rol se puede usar para verificar que el usuario tiene otorgado dicho rol.
Otorgados a travs del Sistema Operativo
Comando del sistema operativo o utilitarios se pueden utilizar para asignar roles de
usuarios en la base de datos.

20
Instituto Profesional DuocUC
Escuela de Ingeniera

Roles Predefinidos
CONNECT CREATE SESSION, CREATE TABLE, CREATE
VIEW, CREATE SYNONYM, CREATE
SEQUENCE, CREATE DATABASE LINK,
CREATE CLUSTER, ALTER SESSION
RESOURCE CREATE TABLE, CREATE PROCEDURE,
CREATE SEQUENCE, CREATE TRIGGER,
CREATE TYPE, CREATE CLUSTER, CREATE
INDEXTYPE, CREATE OPERATOR
SCHEDULER_ CREATE ANY JOB, CREATE JOB, EXECUTE
ADMIN ANY CLASS, EXECUTE ANY PROGRAM,
MANAGE SCHEDULER
DBA Varios privilegios de sistema, varios otros
roles. No otorgados a No Administradores
SELECT_ Ningun privilegio de sistemas pero sobre 1600
CATALOG_ privilegios de objetos sobre el diccionario de
ROLE datos

Roles Predefinidos
Hay varios roles definidos automticamente por Oracle cuando se corre el script de
creacin de la base de datos. CONNECT es otorgado automticamente a cualquier
usuario creado con Enterprise Manager. SELECT_CATALOG_ROLE es otorgado para
accesar vistas de diccionario de datos y packages (este rol esta desaprobado en favor
del privilegio de sistema SELECT_ANY_DICTIONARY). El rol de DBA incluye casi
todos los roles y no se debe otorgar a usuarios NO ADMINISTRADORES.
Funcionalidad de Roles
Otros roles que permiten administrar funciones espaciales son creados cuando esa
funcionalidad se instala. Por ejemplo, XDBADIM contiene privilegios requeridos para
administrar una base de datos XML si la caracterstica esta instalada. El
AQ_ADMINISTRATOR_ROLE provee privilegios para la administracin avanzada de
colas. El HS_ADMIN_ROLE incluye privilegios necesarios para administrar servicios
heterogenos. NO se deben alterar los privilegios otorgados a estos roles funcionales
sin asistencias de Soporte Oracle porque puede inhabilitar alguna funcionalidad
necesaria.

21
Instituto Profesional DuocUC
Escuela de Ingeniera

Seguridad de Roles
Roles pueden ser no por defecto.
SET ROLE vacationdba;

Roles pueden ser protegidos a travs de autetificacin.

Roles pueden ser securidados programticamente.

CREATE ROLE secure_application_role


IDENTIFIED USING <security_procedure_name>;

Seguridad de Roles
Los roles generalmente esta habilitados por defecto, lo que significa que si un rol es
otorgado a un usuario, ese usuario puede ejecutar los privilegios dados a ese rol sin
restricciones adicionales.
Es posible:
Hacer un rol nondefault. Cuando un rol es otorgado a un usuario, el check box
DEFAULT esta limpio. Ahora el usuario debe explcitamente permitir el rol antes
que los privilegios de sistema sean ejecutados.
Tener un rol que requiere autentificacin adicional. La autentificacin por
default para un rol es NONE, pero es posible tener un rol que requiera
autentificacin adicional antes se poder ser seteado.
Crear una aplicacin segura de roles, que los habilite solo ejecutando
exitsamente un procedimiento PL/SQL. El procedimiento PL/SQL puede
comprobar cosas como la direccin de red del usuario, cul programa esta
corriendo, hora del da o cualquier cosa que necesite asegurar propiciamente un
grupo de permisos antes de otorgar el rol y por ende, los privilegios asociados a
el.

22
Ejemplos de otorgamientos de Privilegios
Otorgar privilegios de select, insert, delete y update sobre la tables clientes, al
usuario sales_manager.
GRANT SELECT, INSERT, DELETE, UPDATE ON CLIENTES TO
SALES_MANAGER;
Si se otorga el privilegio especial al usuario PUBLIC; significa que todo los
usuarios actuales y futuros tienen disponible dicho privilegio. Ejemplo, otorgar privilegio
de SELECT a todos los usuarios de la base de datos para la tabla CLIENTES.
GRANT SELECT ON CLIENTES TO PUBLIC;
Ejemplos de revocacin de Privilegios
Eliminar el privilegio de DELETE sobre la tabla CLIENTES al usuario sales_manager
REVOKE SELECT ON CLIENTES TO SALES_MANAGER;
Modificar una password de un usuario
ALTER USER usuario IDENTIFIED BY password;
Desbloquear una cuenta de usuario
ALTER USER usuario ACCOUNT UNLOCK;
Se recomienda a los alumnos, investigar sobre los comandos:
CREATE USER, CREATE PROFILE, CREATE ROLE, ALTER USER, ALTER
PROFILE, ALTER ROLE

Mayores informaciones sobre usuarios es posible encontrarlas en las vistas del


diccionario de datos: DBA_USERS y DBA_TS_QUOTAS.
Mayores informaciones sobre privilegios es posible encontralas en las vistas del
diccionario de datos: DBA_SYS_PRIVS, SESSION_PRIVS, DBA_TAB_PRIVS y
DBA_COL_PRIVS.
DBA_SYS_PRIVS: Lista privilegios del sistema otorgados a usuarios y roles
SESSION_PRIVS: Lista los privilegios que estan actualmente disponibles para el usuario
DBA_TAB_PRIVS: Lista todos los grant de todos los objetos de la base ed datos
DBA_COL_PRIVS: Usuarios a los que han sido otorgados privilegios sobre columnas de
tablas

23
TAREA INVESTIGACION

Analice y comente los siguientes comandos asociados a la leccin.


a) CREATE USER aaron IDENTIFIED BY soccer DEFAULT TABLESPACE data
TEMPORARY TABLESPACE temp
QUOTA 15M ON data PASSWORD EXPIRE;

b) CREATE USER aaron IDENTIFIED BY EXTERNALLY


DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 15M ON data PASSWORD EXPIRE;

c) ALTER USER aaron QUOTA 0 ON USERS;

d) DROP USER aaron;

e) DROP USER aaron CASCADE;

f) GRANT CREATE SESSION TO marcela;

e) GRANT CREATE SESSION TO marcela WITH CHECK OPTION;

h) REVOKE CREATE TABLE FROM marcela;

24
Instituto Profesional DuocUC
Escuela de Ingeniera

Fin de la Leccin

Jaime Amigo P. 2006, Santiago - Chile