Tema 5 - Esquemas en Oracle (Curso 2011)

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

Curso de Administración de Base de Datos (ORACLE) 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.

Los tipos de objetos de un esquema son:

 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

Diccionario de Datos Descripción


Dba_users Muestra información de los usuarios de la Base 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:

Nombre del usuario


Método de Autenticación
Tablespace por defecto (Default Tablespace)
Tablespace temporal por defecto (Temporary Tablespace)
Otros tablespaces que pueda utilizar y las cuotas en cada uno de ellos (Quotas)
Fichero de parametrización del usuario (User Profile).

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 y manejo de usuarios:

 Creación de un usuario:

CREATE USER nombre_usuario

IDENTIFIED BY password

[DEFAULT TABLESPACE nombre_tablespace]

[TEMPORARY TABLESPACE nombre_tablespace]

[QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace1]

[, QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace2]

[PROFILE nombre_perfil]

[PASSWORD EXPIRE]

[ACCOUNT LOCK o ACCOUNT UNLOCK]

Donde los parámetros corresponden a lo siguiente:

 Username: Nombre del usuario que se está creando.

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:

CREATE USER usuario


IDENTIFIED BY "password"
DEFAULT TABLESPACE userdata
TEMPORARY TABLESPACE usertemp
QUOTA 0 ON SYSTEM
QUOTA 0 ON SYSAUX
QUOTA UNLIMITED ON userdata
QUOTA 10M ON indx_sml
PROFILE appl_profile;

 Modificación de usuarios:

ALTER USER nombre_usuario

IDENTIFIED BY password

[DEFAULT TABLESPACE nombre_tablespace]

[TEMPORARY TABLESPACE nombre_tablespace]

[QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace1]

[, QUOTA [número, K o M o UNLIMITED] ON nombre_tablespace2]

[PROFILE nombre_perfil]

[PASSWORD EXPIRE]

[ACCOUNT LOCK o ACCOUNT UNLOCK]

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

DROP USER nombre_usuario [CASCADE]

Y la opción Cascade se hace obligatoria cuando el usuario posee objetos en su esquema


(tablas, vistas, etc.) y debemos borrarlos junto con él. Sin usar esta opción no podríamos
eliminar un usuario con objetos.
Unido con el concepto de Esquema y Usuario, se encuentran dos conceptos importantes que
son, los perfiles y los roles.

Diccionario de Datos

Diccionario de Datos Descripción


Dba_users Muestra información de los usuarios de la Base de datos
Dba_ts_quotas Muestra las cuotas asignadas a los usuarios sobre los
distintos tablespaces

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 y manejo de perfiles:

 Creación de un perfil.
CREATE PROFILE nombre_perfil LIMIT
[recurso valor]
[recurso valor]
[recurso valor]
……….

Donde los parámetros corresponden a lo siguiente:

 Nombre_perfil: Nombre del perfil a crear.

6
Curso de Administración de Base de Datos (ORACLE) 2011

 Recurso que se limita en el perfil


 Valor del límite

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

Diccionario de Datos Descripción


Dba_profiles Muestra información de los recursos que se pueden limitar
en un profile y de sus posibles valores

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.

Para crear roles se utiliza la siguiente sintaxis:

CREATE ROLE nombre_rol NOT IDENTIFIED o IDENTIFIED BY password

Y para asignar el rol a un usuario o para comenzar a asignar / quitar ciertos privilegios al rol se
debe utilizar los comandos siguientes:

 Grant: Otorga privilegios a un rol (o a un usuario cualquiera) o también asigna un rol a


un usuario.
 Revoke: Elimina privilegios otorgados previamente a un rol (o a un usuario).

Los roles o privilegios se pueden asignar varios al mismo usuario o grupo en una sola línea de
comandos, siguiendo la sintaxis siguiente:

GRANT nombre_rol o nombre_privilegio [, nombre_rol o nombre_privilegio]

TO nombre_usuario o nombre_rol o PUBLIC [, nombre_usuario o nombre_rol]

[WITH ADMIN OPTION]

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…

O pueden contener a su vez a otros roles.

Los privilegios otorgados a través de roles no funcionan en procedimientos, funciones y


paquetes. En estos casos los privilegios deben ser otorgados directamente a los usuarios.

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:

REVOKE nombre_rol o nombre_privilegio [, nombre_rol o nombre_privilegio] FROM


usuario, role

 Diccionario de Datos

9
Curso de Administración de Base de Datos (ORACLE) 2011

Diccionario de Datos Descripción


Dba_roles Muestra el nombre de los roles existentes y el tipo de
autenticación.
Dba_role_privs Muestra los privilegios otorgados a cada role
Role_sys_privs Muestra los privilegios de sistema asociados con cada role
Role_tab_privs Muestra los privilegios sobre tablas asignados a cada role
Role_role_privs Muestra los roles asignados a otros roles
System_privilege_map Muestra un listado de todos los privilegios del sistema
Table_privilege_map Muestra un listado de todos los privilegios sobre tablas

Ejemplo:

Obtener los privilegios del sistema:

Select * from system_privilege_map

10

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy