abf leccion 13

25
Jaime Amigo P. © 2006, Santiago - Chile Instituto Profesional DuocUC Escuela de Ingeniería Administrando Usuarios

Upload: victdiazm

Post on 05-Dec-2014

552 views

Category:

Documents


5 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Abf leccion 13

Jaime Amigo P. © 2006, Santiago - Chile

Instituto Profesional DuocUCEscuela de Ingeniería

Administrando Usuarios

Page 2: Abf leccion 13

2

Instituto Profesional DuocUCEscuela de Ingeniería

Objetivos

Después de completar esta lección, 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

Page 3: Abf leccion 13

3

Instituto Profesional DuocUCEscuela de Ingeniería

Cuentas de Usuarios de Bases de Datos

Cada cuenta de usuario de base de datos debetener un:• Nombre de usuario único• Método de Autentificación• Tablespace Default• Tablespace Temporal• Perfil de Usuario

Cuentas de Usuarios de Bases de DatosUna 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 genéricas son difíiciles de auditar y es unamala práctica 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 mínimo se debe asignar un nombreúnico y un método de autentificación. Opcionalmente, se puede otorgar atributos adicionales a la cuentade 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 método de autentificación. El método más común de autentificación es una contraseña, pero Oracle10g soporta varios otros tipos incluyendo biométrico, certificados y la autentificación simbólica (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 sortsy tablas temporales. •Un perfil de usuario. Un conjunto de recursos y restricciones de password asignadas al usuario

Page 4: Abf leccion 13

4

Instituto Profesional DuocUCEscuela de Ingeniería

Creando un UsuarioSeleccione Users desde la página Administration. HagaClick en el botón 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 páginas. Se puedecrear 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 sección de Schema y luego a

Users & Properties. Finalmente seleccione Users haciendo un click. Aparecerauna página que contiene la lista de usuarios válidos para la base de datos.

3. Hacer click en Create para crear un nuevo usuario.

Page 5: Abf leccion 13

5

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}]

Dónde

user: Nombre del usuario

BY password: especifica que para que el usuario se autentifique con la base de datos necesitaingresar 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 usuariosobre 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 opción 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.

Page 6: Abf leccion 13

6

Instituto Profesional DuocUCEscuela de Ingeniería

Perfiles y Usuarios

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

Perfiles:• Control del uso

de recursos• Administración

de passwords

Perfiles y UsuariosLos perfiles definen un conjunto de limitaciones de recursos al uso de la base de datosy de la instancia. Los perfiles tambien imponen limitaciones sobre la password (largo, fecha de expiración, etc). Cada usuario esta asignado a un perfil y puede tenerasociado solo un perfil a la vez.

Existe un perfil por defecto básico que sirve de base para todos los otros perfiles. Como se observa en la figura, existen limitaciones sobre el uso de CPU por sesión, CPU por llamadas o tiempo máximo de conexión, etc.Los perfiles solo pueden imponer limitaciones de uso de recursos a usuarios, si el parámetro de inicialización 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 sesión. Un factor CPU/session de 1000 significa que si una sesión individual esta usando este perfil de consumomas 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

Page 7: Abf leccion 13

7

Perfiles y Usuarios (continuación)Una limitación por llamada es la misma cosa, pero en vez de limitar la sesión total del usuario, evita que cualquier comando simple consuma mucha CPU. Si CPU/Call estalimitado y el usuario excede la limitación, el comando se aborta y aparece el siguienteerror:

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 automáticamente 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 otrasaplicaciones.

- Concurrent Sessions: Cuantas sesiones concurrente pueden ser creadasusando la cuenta de la base de datos.

- Private SGA: Limita la cantidad de espacio consumido dentro de la SGA para ordenamientos por ejemplo. Esta restricción solo tiene efecto cuandose usan servidores compartidos

• Disk I/O: Limita la cantidad de datos que un usuario puede leer en la sesión. Reads/Session y Reads/Call colocan un límite sobre el número total de lecturasde memoria y disco. Esto puede utilizarse para asegurar que no habransentencias que consuman mucho I/O. Los perfiles también permitencombinaciones CPU/session, reads/session, connect time, y private SGA.

Page 8: Abf leccion 13

8

Instituto Profesional DuocUCEscuela de Ingeniería

Autentificación de Usuarios• Password• External• Global

Autentificación de UsuariosAutentificar significa verificar la identidad de alguien (usuario, dispositivo u otraentidad) que desee usar datos, recursos o aplicaciones. Validando esa identidadestablece una relación de confianza para otras interacciones. La autentificacióntambién establece . Después de la autentificación, el proceso permite o limita nivelesde acceso sobre entidades.Cuando se crea una cuenta de usuario se debe decidir la técnica de autentificación a utilizar, sin embargo, esta puede ser modificada después.Password: También referencia como autentificación por la base de datos, crea cadausuario con una password asociada que debe ser entregada cuando el usuario intentaestablecer una conexión. Cuando se setea una password, es posible expirarlainmediatamente, lo que fuerza al usuario a modificarla después de su primer login. Sise planifica que las password de usuario expiren, se debe tener certeza que losusuarios tienen la posibilidad de cambiar la password. Algunas aplicaciones finales de usuarios no tienen esta funcionalidad.

Page 9: Abf leccion 13

9

Autentificación de Usuarios (continuación)External: También referenciada como autentificación por sistema operativo, usuariospueden conectarse a Oracle mas convenientemente sin especificar un usuario o contraseña. Con este tipo de autentificación, la base de datos confía en el sistemaoperativo o servicio de autentificación de red para restringir el acceso de las cuentasa la base de datos. Una password de base de datos no debe ser usada con este tipode login. Si el sistema operativo o servicio de autentificación de red lo permite, se puede tener este tipo de autentificación de usuarios. Para poder realizarlo, es precisosetear el parámetro de inicialización OS_AUTHENT_PREFIX y usar este prefijo en las cuentas de Oracle. El parámetro OS_AUTHENT_PREFIX define un prefijo queOracle 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_PREFIXesta seteado como sigue:

OS_AUTHENT_PREFIX=OPS$Si un usuario con una cuenta de sistema operativo llamada tsmith estaconectándose a una base de datos Oracle y esta autentificado en el sistemaoperativo, Oracle chequea que esta corresponda a un usuario de base de datosllamado OPS$tsmith y si es así, permite al usuario conectarse. Todas las referenciasa un usuario autentificado por sistema operativo deben incluir el prefijo, como se ha visto OPS$tsmith. Note: El texto del parámetro de inicialización OS_AUTHENT_PREFIX es case sensitive (sensible a mayúsculas y minúsculas). Global: Es una autentificación fuerte a través de la opción Oracle Advanced Security, que permite a los usuarios ser identificados a través del uso de dispositivosbiométricos, certificados X.509, kerberos, Radius, dispositivos token y Oracle Internet Directory.

Page 10: Abf leccion 13

10

Instituto Profesional DuocUCEscuela de Ingeniería

Tablespace Default, Temporary y Locking

• Default: Localización Default de objetos de bases de datos (Vistas, Indices, Triggers, etc)

• Temporary: Usados para Ordenamiento (sorting)

Default, Temporary Tablespaces y LockingCada usuario tiene asignado un tablespace por default. El tablespace default es el tablespace donde los objetos son creados si no se especifica en la cláusula CREATE TABLE o INDEX el tablespace durante la creación de los mismos. Si no se especificaun 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 cláusula 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 lascuentas nuevas de usuario tiene asignado por defecto desbloqueado (unlocked).

Page 11: Abf leccion 13

11

Instituto Profesional DuocUCEscuela de Ingeniería

Usuarios de Base de Datos y Schemas

Schema ObjectsTablesTriggersIndexesViewsSequencesStored program unitsSynonymsUser-defined data typesDatabase links

• La colección de objetospropiedad de un usuarioes llamado Schema.

• Un usuario puede estarasociado solo un Schema.

• Username y schema a menudo son usadosalternativamente.

Usuarios de base de datos y SchemasUn esquema (schema) es una colección 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 código Java o PL/SQL. No hay relación entre tablespace y esquemas. Objetos en el mismo esquemapueden estar en tablespace diferentes y un tablespace puede contener objetos de diferentes esquemas. Cuando se crea un usuario de base de datos, un esquemacorrespondiente con el mismo nombre se crea para ese usuario. Un usuario puedeestar asociado sólo 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 tablase 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 dentrode este y pueden otorgar permisos a otros usuarios para usar dichos objetos.

Page 12: Abf leccion 13

12

Instituto Profesional DuocUCEscuela de Ingeniería

Checklist para Crear Usuarios

• Seleccionar un perfil• Seleccionar una técnica de autentificación• Asignar un tablespace Default y Temporal• Otorgar privilegios y roles al usuario• Decidir las cuotas sobre el tablespace

Checklist para creación de usuariosAl crear un usuario, el DBA debe asignar un perfil, seleccionar un método de autentificación y asignar un tablespace temporal y por defecto. Por defecto cuando un usuario es creado, éstos no tienen ningún privilegio, lo que significa que no tienenhabilitadas acciones para realizar sobre la base de datos. Database Control automáticamente 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 ningún tablespace, el usuario no podra crear objetos.Un usuario que no tiene asignado ningún privilegio, solo puede acceder a los objetos creados por el mismo.

Page 13: Abf leccion 13

13

Instituto Profesional DuocUCEscuela de Ingeniería

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 específico

Privilegios

PrivilegiosUn privilegio es un derecho a ejecutar un tipo de sentencia SQL en particular o accedera 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 ejecutaruna operación 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 poralguien que explicitamente tenga el permiso de administrador. Hay sobre 100 privilegios de sistema disponibles.

• Privilegios de Objetos. Estos permiten a un usuario ejecutar una acciónparticular sobre un objeto, tal como tabla, vista, secuencia, procedure, función o package. Sin permisos específicos, los usuarios pueden accesar solo a susobjetos (los creados por ellos mismos). Los privilegios de objetos puede ser otorgados por el dueño del objeto, por el DBA o por alguien que explicítamente se le otorgó privilegio sobre el objeto.

Page 14: Abf leccion 13

14

Instituto Profesional DuocUCEscuela de Ingeniería

Privilegios de Sistema

Privilegios de SistemaPara 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 cláusula 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 usuariohacer 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 aún si la base de datos ha sido abierta en modo restringuido.

Page 15: Abf leccion 13

15

Privilegios de Sistema (continuación)• SYSDBA y SYSOPER: Esos privilegios permiten al usuario bajar, subir, ejecutar

recuperación 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 dueño.• CREATE, MANAGE, DROP, ALTER TABLESPACE: Usuarios no administradores

NO DEBEN tener control sobre tablespaces.• CREATE ANY DIRECTORY: Oracle permite a desarrolladores llamar a código

externo (por ejemplo, una librería C) desde un PL/SQL. Como medida de seguridad, el directorio del sistema operativo donde reside el código debe estarligado a un directorio virtual de objetos Oracle. Con el privilegio CREATE ANY DIRECTORY, un usuario puede potencialmente llamar objetos de códigoinseguro.

• EXEMPT ACCESS POLICY: Este privilegio permite a un usuario bypasearfunciones de seguridad colocadas en tablas o vistas.

• GRANT ANY OBJECT PRIVILEGE: Este privilegio permite al usuario otorgarpermisos a objetos sobre objetos de los cuales no es dueño.

• ALTER DATABASE and ALTER SYSTEM: Usuarios no administradores, no deben tener permisos para cambiar la base de datos o instancia.

Page 16: Abf leccion 13

16

Instituto Profesional DuocUCEscuela de Ingeniería

Privilegios de Objetos

Para otorgar privilegios de objetos:• Seleccionar el tipo de

objeto• Seleccionar los objetos• Seleccionar privilegios

Privilegios de ObjetosPara otorgar privilegios de objetos, hacer click en el link Object Privileges, seleccionarel tipo de objeto que tu deseas otorgar privilegios y hacer click en el boton ADD. Elijalos objetos a los que desea otorgar privilegios entrando el username.object name o seleccionándolos desde el listado.Luego, seleccione el privilegio apropiedo del listbox Available Privileges y haga click en el botón Move.Seleccione Grant del checkbox de la lista de privilegios de objetos para permitir al usuario conceder a otros usuarios el mismo acceso.

Page 17: Abf leccion 13

17

Instituto Profesional DuocUCEscuela de Ingeniería

Asignando Cuotas a UsuariosUsuarios que no tienen el privilegio de sistemaUNLIMITED TABLESPACE deben tener una cuotaantes que ellos puedan crear objetos sobre dichotablespace. Cuotas puede ser:• Unlimited (ilimitadas)• Un valor específico en megabytes o kilobytes

Asignando cuotas a usuariosCuota es un espacio asignado a un tablespace. Por defeault, un usuario no tiene cuotaen ningun tablespace. Usted tiene tres opciones para proveer cuotas a un usuariosobre un tablespace.

• Unlimited: Permite al usuario que use espacio sobre el tablespace sin restricción.• 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 eliminatodas las cuotas individuales sobre el tablespace y da al usuario cuota ilimitadassobre todos los tablespaces, incluyendo a SYSTEM y SYSAUX. Este privilegiodebe ser otorgado con precaución.

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 crearobjetos en el tablespace SYSTEM o SYSAUX.Los usuarios no necesitan tener cuota sobre su tablespace temporal o cualquiertablespace de undo.

Page 18: Abf leccion 13

18

Instituto Profesional DuocUCEscuela de Ingeniería

Asignando Roles a Usuarios

Asignando roles a usuariosUn 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 puedenagregar privilegios a un rol y entonces otorgarlos a un usuario. El usuario puedepermitir habilitar el rol y ejecutar los privilegios otorgados por el rol. Un rol contienetodos los privilegios otorgados al rol y todos los privilegios de otros roles asignados a este. Por defecto, Enterprise Manager automáticamente otorga el rol CONNECT a losnuevos usuarios. Esto permite a los usuarios conectarse a la base de datos y crearobjetos en su propio esquema.

Page 19: Abf leccion 13

19

Instituto Profesional DuocUCEscuela de Ingeniería

Usuarios

Privilegios

Roles HR_VENDEDORHR_MGR

Roles

Michelle Augusto

Deleteempleado

Selectempleado

Updateempleado

Insertempleado

Ricardo

RolesEn la mayoría de los sistemas concede privilegios individuales a cada usuario es una actividadmuy consumidora de tiempo y existe una alta probabilidad de error. Oracle provee mecanismospara administrar privilegios a través de roles. Los roles son grupos nombrados de privilegiosrelacionados que están otorgados a usuarios y a otros roles. Están diseñados para facilidad la administración de privilegios y por ende, mejoran la seguridad.Características 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 están en ningún 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 asignadoprivilegios 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.

Page 20: Abf leccion 13

20

Instituto Profesional DuocUCEscuela de Ingeniería

• Facilidad de administracion de Privilegios• Administración dinámica de privilegios• Disponibilidad selectiva de privilegios• Pueden ser otorgados a través del Sistema

Operativo

Beneficios de usar Roles

Beneficios de usar rolesFacilidad de administración de privilegiosUsar roles simplifica la administración de privilegios. Concediendo el mismo conjuntode privilegios a varios usuarios a la vez, se puede otorgar un nuevo privilegio a un rol y el rol otorgárselo a cada usuario. Administración dinámica 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 automática e inmediatamente.Disponibilidad Selectiva de PrivilegiosLos 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 través del Sistema OperativoComando del sistema operativo o utilitarios se pueden utilizar para asignar roles de usuarios en la base de datos.

Page 21: Abf leccion 13

21

Instituto Profesional DuocUCEscuela de Ingeniería

Roles Predefinidos

CREATE ANY JOB, CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM, MANAGE SCHEDULER

SCHEDULER_ ADMIN

Ningun privilegio de sistemas pero sobre 1600 privilegios de objetos sobre el diccionario de datos

SELECT_CATALOG_ROLE

Varios privilegios de sistema, varios otrosroles. No otorgados a No Administradores

DBA

CREATE TABLE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR

RESOURCE

CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK, CREATE CLUSTER, ALTER SESSION

CONNECT

Roles PredefinidosHay varios roles definidos automáticamente por Oracle cuando se corre el script de creación de la base de datos. CONNECT es otorgado automáticamente a cualquierusuario creado con Enterprise Manager. SELECT_CATALOG_ROLE es otorgado paraaccesar 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 casitodos los roles y no se debe otorgar a usuarios NO ADMINISTRADORES.Funcionalidad de RolesOtros roles que permiten administrar funciones espaciales son creados cuando esafuncionalidad se instala. Por ejemplo, XDBADIM contiene privilegios requeridos paraadministrar una base de datos XML si la característica esta instalada. El AQ_ADMINISTRATOR_ROLE provee privilegios para la administración avanzada de colas. El HS_ADMIN_ROLE incluye privilegios necesarios para administrar serviciosheterogenos. NO se deben alterar los privilegios otorgados a estos roles funcionalessin asistencias de Soporte Oracle porque puede inhabilitar alguna funcionalidadnecesaria.

Page 22: Abf leccion 13

22

Instituto Profesional DuocUCEscuela de Ingeniería

Roles pueden ser protegidos a través de autetificación.

CREATE ROLE secure_application_roleIDENTIFIED USING <security_procedure_name>;

Seguridad de Roles

Roles pueden ser securidados programáticamente.

Roles pueden ser no por defecto.SET ROLE vacationdba;

Seguridad de RolesLos roles generalmente esta habilitados por defecto, lo que significa que si un rol esotorgado 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 explícitamente permitir el rol antes que los privilegios de sistema sean ejecutados.

• Tener un rol que requiere autentificación adicional. La autentificación pordefault para un rol es NONE, pero es posible tener un rol que requieraautentificación adicional antes se poder ser seteado.

• Crear una aplicación segura de roles, que los habilite solo ejecutandoexitósamente un procedimiento PL/SQL. El procedimiento PL/SQL puedecomprobar cosas como la dirección de red del usuario, cuál programa estacorriendo, hora del día o cualquier cosa que necesite asegurar propiciamente un grupo de permisos antes de otorgar el rol y por ende, los privilegios asociados a el.

Page 23: Abf leccion 13

23

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 revocación 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

Page 24: Abf leccion 13

24

TAREA INVESTIGACION

Analice y comente los siguientes comandos asociados a la lección.

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;

Page 25: Abf leccion 13

Jaime Amigo P. © 2006, Santiago - Chile

Instituto Profesional DuocUCEscuela de Ingeniería

Fin de la Lección