Tema 5 - Esquemas en Oracle (Curso 2011)
Tema 5 - Esquemas en Oracle (Curso 2011)
Tema 5 - Esquemas en Oracle (Curso 2011)
TEMA 5
ESTRUCTURAS DE
BBDD
ESQUEMAS
1
Curso de Administración de Base de Datos (ORACLE) 2011
1 Esquemas / Usuarios
Un esquema es una colección de objetos de Base de datos. Cada esquema es propiedad de un
usuario de base de datos y tiene el mismo nombre que el propietario del mismo. Los objetos
de un esquema son estructuras lógicas que hacen referencia directa a los datos.
Los objetos de un esquema, pueden estar en uno o en varios tablespaces, así como en un
Tablespace puede haber objetos de varios esquemas.
Clusters
Constraints
Likns de Base de Datos
Triggers
Procedimientos
Funciones
Índices
Clases Java
Vistas
Tablas
Secuencias
Paquetes
Sinónimos
Hay otros tipos de objetos de la base de datos que no son propiedad de ningún esquema como
son:
Ficheros de parámetros
Roles
Segmentos de rollback
Tablespaces
Usuarios
Los objetos de un esquema, pueden estar en uno o varios tablespaces y dentro de estos
encontrarse físicamente en uno o diferentes ficheros de datos tal y como muestra la siguiente
figura:
2
Curso de Administración de Base de Datos (ORACLE) 2011
Diccionario de Datos
1.1 Usuraios
Para conectase a una Base de Datos, cada usuario debe tener un nombre válido que ha sido
previamente definido en la Base de Datos. Toda la información del usuario pasa a estar en el
Diccionario de Datos.
Para cada cuenta de usuario o esquema que se crea se pueden especificar los siguientes
atributos:
3
Curso de Administración de Base de Datos (ORACLE) 2011
Oracle crea automáticamente varios usuarios predefinidos. Hay tres tipos de usuarios
predefinidos que son:
Usuarios de Administración.
Existen dos usuarios administradores por defecto que son los usuarios SYS y SYSTEM,
que son los propietarios del Diccionario de Datos y de las tablas propias que
configuran la propia Base de Datos.
Otro usuario de este tipo es el usuario SYSMAN que es usado para las tareas de
administración de Enterprise Manager.
Y por último está el usuario DBSNMP utilizado para el agente de Enterprise Manager.
Ninguno de estos usuarios puede ser borrado.
Usuarios de Ejemplo.
Por defecto se pueden crear en la Base de datos unas cuentas de usuario de ejemplo
con sus objetos correspondientes, tales como los usuarios HR, SH, SCOTT y OE. Estos
usuarios antes de poder ser utilizados, deben ser desbloqueados y cambiada su
password.
Usuarios Internos
Estos usuarios son creados para diversos componentes internos de la Base de Datos y
pueden tener sus propios esquemas y objetos. Estos usuarios internos tampoco deben
ser borrados.
Creación de un usuario:
IDENTIFIED BY password
[PROFILE nombre_perfil]
[PASSWORD EXPIRE]
4
Curso de Administración de Base de Datos (ORACLE) 2011
Password: Clave de inicio que se le otorga al usuario. Luego él podrá reemplazarla por
la que desee.
Default Tablespace: Es el tablespace por defecto al que se conectará el usuario cada
vez que ingrese a la base de datos y donde guardará todos sus objetos. Si no se
especifica, entonces se conectará al tablespace system.
Temporary Tablespace: Es el tablespace temporal que utilizará el usuario en todas sus
conexiones.
Quota: Cuota de disco (en Kilobytes o Megabytes) que le es otorgada al usuario en
cada uno de los tablespaces a los que puede acceder. Si se indica "UNLIMITED"
entonces el usuario podrá utilizar todo el espacio que quiera dentro del tablespace
designado.
Profile: Es el nombre del perfil que ha sido asignado a este usuario.
Password expire: Establece que el password del usuario expirará en forma automática
y, por lo tanto, deberá cambiarlo al iniciar su próxima sesión.
Account lock (o unlock): Permite establecer si la cuenta debe permanecer bloqueada o
no inmediatamente después de crearla.
Ejemplo:
Modificación de usuarios:
IDENTIFIED BY password
[PROFILE nombre_perfil]
[PASSWORD EXPIRE]
5
Curso de Administración de Base de Datos (ORACLE) 2011
Es tan poderosa que da la sensación de estar creando al usuario de nuevo, pero no es así
porque todos los objetos que tuviera creados bajo su esquema siguen permaneciendo allí.
Eliminación de usuarios
Diccionario de Datos
1.2 Perfiles
Los perfiles se crean para limitar las posibilidades de los usuarios del sistema de base de datos.
EL perfil limita recursos del kernel como el uso de la CPU, duración de la sesión y límites de las
claves de acceso, no limita sobre objetos de la Base de datos, eso lo hacen los roles. Por
ejemplo, se pueden establecer 3 tipos de usuarios:
Administradores: Que podrían tener acceso a recursos ilimitados dentro del sistema.
Desarrolladores: Que podrían disponer de un número ilimitado de sesiones pero
restringida la utilización de la CPU.
Otros.
En síntesis, los perfiles se utilizan para suavizar las tareas de administración de la seguridad,
manteniendo siempre bajo control los accesos a los recursos de todos los usuarios, por
muchos que éstos puedan llegar ser.
Creación de un perfil.
CREATE PROFILE nombre_perfil LIMIT
[recurso valor]
[recurso valor]
[recurso valor]
……….
6
Curso de Administración de Base de Datos (ORACLE) 2011
Ejemplo:
CREATE PROFILE
appl_profile
LIMIT
sessions_per_user 2 --
cpu_per_session 10000 -- hunderth of seconds
cpu_per_call 1 -- hunderth of seconds
connect_time unlimited -- minutes
idle_time 30 -- minutes
logical_reads_per_session default -- db blocks
logical_reads_per_call default -- db blocks
-- composite_limit default --
private_sga 20M --
failed_login_attempts 3 --
password_life_time 30 -- days
password_reuse_time 12 --
password_reuse_max unlimited --
password_lock_time default -- days
password_grace_time 2 -- days
password_verify_function null;
Modificación de un perfil.
ALTER PROFILE nombre_perfil LIMIT recurso valor
Ejemplo:
ALTER PROFILE appl_profile LIMIT FAILED_LOGIN_ATTEMPTS 3;
Eliminación de un perfil.
DROP PROFILE nombre_perfil LIMIT recurso valor CASCADE
Ejemplo:
DROP PROFILE appl_profile CASCADE;
Diccionario de Datos
Ver Anexo II, para ver todos los límites posibles para un profile.
7
Curso de Administración de Base de Datos (ORACLE) 2011
1.3 Roles
Los Roles constituyen la forma más segura y rápida de asignar recursos a los grupos de
usuarios. Es una tarea muy tediosa para cualquier DBA tener que asignar o revocar permisos a
todos los usuarios, de a uno por uno, y es por eso que agrupando un conjunto de usuarios bajo
las mismas características es posible manejar sus permisos como un grupo.
Y para asignar el rol a un usuario o para comenzar a asignar / quitar ciertos privilegios al rol se
debe utilizar los comandos siguientes:
Los roles o privilegios se pueden asignar varios al mismo usuario o grupo en una sola línea de
comandos, siguiendo la sintaxis siguiente:
Si los privilegios se otorgan con la cláusula "with admin option" esto quiere decir que los
usuarios que reciben los privilegios pueden a su vez otorgarlos a otros.
Los roles pueden dar permisos sobre objetos (object privileges), de los que los mas
importantes son:
SELECT
UPDATE
INSERT
DELETE
ALTER
EXECUTE
REFERENCES
o pueden dar permisos sobre el sistema (system privileges), de los que podemos destacar:
CREATE TABLE
ALTER TABLE
CREATE VIEW
ALTER VIEW
8
Curso de Administración de Base de Datos (ORACLE) 2011
CREATE USER
CREATE TABLESPACE
ETC…
Existen una serie de roles predefinidos, entre los que los mas comunes son los siguientes:
CONNECT
Este role es necesario para todos aquellos usuarios que tengan que conectarse a la
base de datos. Si el usuario se crea desde Enterprise Manager, este role se de dará por
defecto.
RESOURCE
Permite a los usuarios, crear, modificar y borrar cierto tipo de objetos de la base de
datos, asociados con el usuario. Suele darse a los usuarios desarrolladores. Entre otros
este role tiene los privilegios CREATE TABLE, CREATE VIEW, CREATE TYPE, CREATE
TRIGGER….
DBA
Permite al usuario realizar las tareas administrativas esenciales. Tiene todos los
privilegios de sistema, pero no puede realizar Startup ni Shutdown.Por defecto este
role se le da a los usuarios SYS, SYSTEM.
SYSDBA
Este role tiene privilegios de administración al mas alto nivel, el usuario actua como si
fuera el usuario SYS a todos los efectos.
SYSOPER
Similar al anterior.
EXP_FULL_DATABASE
Permite exportaciones completas de la base de datos.
IMP_FULL_DATABASE
Permite importaciones completas de la base de Datos.
Ver Anexo III, para tener todos los roles que se crean por defecto en la creación de
una base de datos.
Un role puede ser revocado de un usuario, para que deje de tener esos privilegios, la sintaxis
es:
Diccionario de Datos
9
Curso de Administración de Base de Datos (ORACLE) 2011
Ejemplo:
10