ABFLeccion_13

Anuncio
Instituto Profesional DuocUC
Escuela de Ingeniería
Administrando Usuarios
Jaime Amigo P. © 2006, Santiago - Chile
Instituto Profesional DuocUC
Escuela 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
2
Instituto Profesional DuocUC
Escuela de Ingeniería
Cuentas de Usuarios de Bases de Datos
Cada cuenta de usuario de base de datos debe
tener un:
• Nombre de usuario único
• Método de Autentificación
• 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 genéricas son difíiciles de auditar y es una
mala 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 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 método de autentificación. El método más común de autentificación es una contraseña, pero Oracle
10g 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 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 Ingeniería
Creando un Usuario
Seleccione Users desde la página Administration. Haga
Click 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 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 sección de Schema y luego a
Users & Properties. Finalmente seleccione Users haciendo un click. Aparecera
una 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.
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}]
Dónde
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 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.
5
Instituto Profesional DuocUC
Escuela 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 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 expiración, etc). Cada usuario esta asignado a un perfil y puede tener
asociado 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 consumo
mas de 10 segundos de tiempo de CPU, el usuario recibe el siguiente error: ORA02392: exceeded session limit on CPU usage, you are being logged off
6
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 esta
limitado y el usuario excede la limitación, 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 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 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 restricción solo tiene efecto cuando
se 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 lecturas
de memoria y disco. Esto puede utilizarse para asegurar que no habran
sentencias que consuman mucho I/O. Los perfiles también permiten
combinaciones CPU/session, reads/session, connect time, y private SGA.
7
Instituto Profesional DuocUC
Escuela de Ingeniería
Autentificación de Usuarios
•
•
•
Password
External
Global
Autentificación 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 relación de confianza para otras interacciones. La autentificación
también establece . Después de la autentificación, el proceso permite o limita niveles
de 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 cada
usuario con una password asociada que debe ser entregada cuando el usuario intenta
establecer una conexión. Cuando se setea una password, es posible expirarla
inmediatamente, lo que fuerza al usuario a modificarla después 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
Autentificación de Usuarios (continuación)
External: También referenciada como autentificación por sistema operativo, usuarios
pueden 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 sistema
operativo o servicio de autentificación 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 autentificación de red lo permite, se
puede tener este tipo de autentificación de usuarios. Para poder realizarlo, es preciso
setear 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 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
conectándose 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 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 dispositivos
biométricos, certificados X.509, kerberos, Radius, dispositivos token y Oracle Internet
Directory.
9
Instituto Profesional DuocUC
Escuela 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 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 cláusula CREATE
TABLE o INDEX el tablespace durante la creación 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 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 las
cuentas nuevas de usuario tiene asignado por defecto desbloqueado (unlocked).
10
Instituto Profesional DuocUC
Escuela de Ingeniería
Usuarios de Base de Datos y Schemas
•
•
•
La colección de objetos
propiedad de un usuario
es llamado Schema.
Schema Objects
Un usuario puede estar
asociado solo un
Schema.
Indexes
Username y schema a
menudo son usados
alternativamente.
Stored program units
Tables
Triggers
Views
Sequences
Synonyms
User-defined data types
Database links
Usuarios de base de datos y Schemas
Un 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 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 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 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 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 usuarios
Al 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 tienen
habilitadas 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.
12
Instituto Profesional DuocUC
Escuela de Ingeniería
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 específico
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 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 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 acción
particular sobre un objeto, tal como tabla, vista, secuencia, procedure, función o
package. Sin permisos específicos, los usuarios pueden accesar solo a sus
objetos (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.
13
Instituto Profesional DuocUC
Escuela de Ingeniería
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 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 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 aún si la
base de datos ha sido abierta en modo restringuido.
14
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 estar
ligado a un directorio virtual de objetos Oracle. Con el privilegio CREATE ANY
DIRECTORY, un usuario puede potencialmente llamar objetos de código
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 dueño.
•
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 Ingeniería
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
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.
16
Instituto Profesional DuocUC
Escuela de Ingeniería
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 específico 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 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 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 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 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 Ingeniería
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 automáticamente 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 Ingeniería
Roles
Usuarios
Michelle
Roles
Privilegios
HR_MGR
Delete
empleado
Ricardo
Augusto
HR_VENDEDOR
Select
empleado
Update
empleado
Insert
empleado
Roles
En la mayoría 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 través de roles. Los roles son grupos nombrados de privilegios
relacionados 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 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 Ingeniería
Beneficios de usar Roles
•
•
•
•
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
Facilidad de administración de privilegios
Usar roles simplifica la administración 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 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 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 través 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 Ingeniería
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_
ADMIN
CREATE ANY JOB, CREATE JOB, EXECUTE
ANY CLASS, EXECUTE ANY PROGRAM,
MANAGE SCHEDULER
DBA
Varios privilegios de sistema, varios otros
roles. No otorgados a No Administradores
SELECT_
CATALOG_
ROLE
Ningun privilegio de sistemas pero sobre 1600
privilegios de objetos sobre el diccionario de
datos
Roles Predefinidos
Hay 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 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 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 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 Ingeniería
Seguridad de Roles
Roles pueden ser no por defecto.
SET ROLE vacationdba;
Roles pueden ser protegidos a través de autetificación.
Roles pueden ser securidados programáticamente.
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 explícitamente permitir el rol antes
que los privilegios de sistema sean ejecutados.
• Tener un rol que requiere autentificación adicional. La autentificación por
default para un rol es NONE, pero es posible tener un rol que requiera
autentificación adicional antes se poder ser seteado.
• Crear una aplicación segura de roles, que los habilite solo ejecutando
exitósamente un procedimiento PL/SQL. El procedimiento PL/SQL puede
comprobar cosas como la dirección de red del usuario, cuál programa esta
corriendo, 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.
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 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
23
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;
24
Instituto Profesional DuocUC
Escuela de Ingeniería
Fin de la Lección
Jaime Amigo P. © 2006, Santiago - Chile
Descargar