Introducción: Administración de Usuarios en Oracle Database
Introducción: Administración de Usuarios en Oracle Database
Introducción: Administración de Usuarios en Oracle Database
[5]
Administración de usuarios en Oracle Database
PUBLICIDAD
[5.1] introducción
A los usuarios se les asigna una serie de privilegios que son los que dan
permiso de uso a ciertos objetos. Estos privilegios suelen agruparse en lo que
se conoce como roles, que permiten estructurar mejor los permisos que se
conceden a los usuarios. El perfil del usuario será el conjunto de permisos y
restricciones que se aplican a dicho usuario.
Por ello cuando un usuario conecta debe probar que es quien dice ser
(normalmente mediante una contraseña), es decir se autentifica. Por otro lado
esta autentificación dará lugar a unos privilegios (unos derechos) y unas
restricciones
Página 1 de 20
DBSMNP. Usuario que tiene permisos para monitorizar Enterprise
Manager.
[5.2.2]privilegios administrativos
Página 2 de 20
o ALTER USER usuario ACCOUNT LOCK
o Expirada. La cuenta agotó el tiempo máximo asignado a ella.
Para salir de este estado, el usuario/a debe resetear su
contraseña de usuario.
o Expirada y bloqueada.
o Expirada en periodo de gracia. Está en los últimos momentos
de uso antes de pasar a estado de expirada
[5.4] autentificación
En este caso usamos los privilegios del sistema operativo para conectar con
una base de datos remota cuyo nombre de servicio de red se indique. Esta
forma sólo vale para máquinas dentro de un dominio Windows.
Página 3 de 20
La utilidad ORAPWD permite crear, si no existe, el archivo de contraseñas:
Funcionamiento:
Está configuración requiere la base de datos montada y abierta (al tener que
usar el diccionario de datos).
[5.4.4]autentificación externa
Página 4 de 20
disponible en Windows. Requiere el uso de las mejoras de seguridad avanzada
de Oracle.
[5.4.5]autentificación global
Si los usuarios sólo están dados de alta en el directorio externo, usarán todos
la misma cuenta de Oracle; para independizarles se requiere darles de alta en
ambos servicios (Oracle y el Oracle Internet Directory).
Sólo la primera línea es obligatoria, el resto posee opciones por defecto que se
aplican si no se especifica cada apartado (no hace falta especificar todos, sólo
las líneas que nos interesen).
Ejemplo:
Página 5 de 20
La contraseña, si no se usan comillas dobles, no puede tener ni espacios en
blanco ni caracteres nacionales como la eñe. En caso de querer usar estos
símbolos se usan comillas dobles, lo que permitirá establecer contraseñas más
complejas.
[5.5.2]modificación de usuarios
Se realiza mediante:
[5.5.4]consultar usuarios
Los privilegios son permisos que damos a los usuarios para que puedan
realizar ciertas operaciones con la base de datos. En Oracle hay más de cien
posibles privilegios. Se dividen en:
Privilegio Significado
CREATE SESSION Permite al usuario conectar con la base de datos
RESTRICTED Permite al usuario establecer sesión con la base de datos en
SESSION caso de que la base de datos esté en modo restringido
mediante la instrucción:
Página 6 de 20
Privilegio Significado
ALTER SYSTEM ENABLE RESTRICTED
SESSION
Sólo los usuarios con este privilegio puede conectar con la
base de datos si ésta se encuentra en este modo.
ALTER DATABASE Permite modificar la estructura de la base de datos
ALTER SYSTEM Permite modificar los parámetros y variables del sistema
CREATE TABLE Permite crear tablas. Incluye la posibilidad de borrarlas.
GRANT ANY Permite conceder privilegios sobre objetos que no son del
OBJECT PRIVILEGE usuario (pertenecen a otros usuarios) a terceros usuarios.
CREATE ANY
Permite crear tablas en otros esquemas de usuario
TABLE
DROP ANY TABLE Permite borrar tablas de otros usuarios
SELECT ANY TABLE Permite seleccionar datos en tablas de otros usuarios
INSERT ANY TABLE Permite añadir datos en tablas de otros usuarios
UPDATE ANY
Permite eliminar datos en tablas de otros usuarios
TABLE
DELETE ANY
Permite eliminar datos en tablas de otros usuarios
TABLE
Privilegio Significado
Sesiones
ALTER SESSION Modificar el funcionamiento de la sesión
ALTER
Modifica los parámetros de cálculo de coste de la sesión
RESOURCE COST
RESTRICTED Conectar aunque la base de datos se haya iniciado en modo
SESSION restringido
Base de datos y sistema
ALTER Modificar la base de datos (privilegio de gran capacidad
DATABASE administrativa)
ALTER SYSTEM Modificar los parámetros del sistema
AUDIT SYSTEM Auditar la base de datos
Usuarios, roles, privilegios y perfiles
Crear usuarios pudiendo indicar tablespace por defecto, cuotas
CREATE USER
y perfiles
Página 7 de 20
Privilegio Significado
Modificar al usuario. Permite cambiar la contraseña y modo de
ALTER USER autentificación, tablespace por defecto, cuota de uso de disco,
roles y el perfil del usuario
DROP USER Borrar usuario
CREATE
Crear perfiles
PROFILE
ALTER PROFILE Modificar perfiles
DROP PROFILE Borrar perfiles
CREATE ROLE Crear roles
ALTER ANY
Modificar roles
ROLE
GRANT ANY
Conceder roles
ROLE
GRANT ANY
Conceder privilegios de sistema
PRIVILEGE
Directorios
CREATE ANY
Crear directorios
DIRECTORY
DROP ANY
Borrar directorios
DIRECTORY
Tablespaces (espacios de tabla)
CREATE
Crear tablespaces
TABLESPACES
ALTER
Modificar tablespaces
TABLESPACE
DROP
Borrar tablespaces
TABLESPACE
MANAGE Administrar el espacio de tablas para poder hacer copia de
TABLESPACE seguridad o simplemente quedar online u offline el tablespace
Usa cuota ilimitada al escribir en cualquier tablespace. Este
UNLIMITED
privilegio elimina las cuotas establecidas sobre el usuario, si las
TABLESPACE
hubiera.
Tablas
Crear tablas en el esquema del usuario, incluye insertar,
CREATE TABLE modificar y eliminar datos de la misma; así como eliminar la
propia tabla
ALTER ANY
Modificar tablas de cualquier usuario
TABLE
BACKUP ANY
Utilizar la utilidad Export para copiar datos de otros esquemas.
TABLE
CREATE ANY
Crear tablas en cualquier esquema
TABLE
DELETE ANY
Borrar filas de tablas en cualquier esquema
TABLE
DROP ANY
Borrar tablas en cualquier esquema
TABLE
Página 8 de 20
Privilegio Significado
INSERT ANY
Añadir datos a cualquier tabla
TABLE
SELECT ANY
Seleccionar datos de tablas en cualquier esquema
TABLE
UPDATE ANY
Modificar datos de tablas de cualquier esquema
TABLE
LOCK ANY
Bloquear tablas, vistas e instantáneas en cualquier esquema
TABLE
FLASHBACK ANY Realizar acción de flashback en tablas, vistas e instantáneas en
TABLE cualquier esquema
Vistas
CREATE VIEW Crear vistas en el esquema del usuario
CREATE ANY
Crear vistas en cualquier esquema
VIEW
DROP ANY VIEW Borrar cualquier vista en cualquier esquema
UNDER ANY
Crear subvistas
VIEW
Instantáneas (Snapshots o vistas materializadas)
CREATE
MATERIALIZED Crear vistas materializadas (instantáneas)
VIEW
CREATE ANY
MATERIALIZED Crear vistas materializadas (instantáneas) en cualquier esquema
VIEW
ALTER ANY
Modificar vistas materializadas (instantáneas) en cualquier
MATERIALIZED
esquema
VIEW
DROP ANY
Borrar vistas materializadas (instantáneas) en cualquier
MATERIALIZED
esquema
VIEW
GLOBAL QUERY Permite realizar operaciones de lectura escritura en instantáneas
REWRITE que usan tablas de otros esquemas
CREATE
Crear instantáneas (obsoleto)
SNAPSHOT
ALTER ANY
Modificar instantáneas de cualquier usuario (obsoleto)
SNAPSHOT
CREATE ANY
Crear instantáneas a cualquier usuario (obsoleto)
SNAPSHOT
DROP ANY
Borrar instantáneas (obsoleto)
SNAPSHOT
PL/SQL
CREATE
Crear procedimientos y funciones PL/SQL
PROCEDURE
ALTER ANY
Modificar procedimientos y funciones de cualquier usuario
PROCEDURE
CREATE ANY Crear funciones y procedimientos en cualquier esquema
Página 9 de 20
Privilegio Significado
PROCEDURE
DROP ANY
Borrar cualquier procedimiento en cualquier esquema
PROCEDURE
EXECUTE ANY
Ejecutar cualquier procedimiento en cualquier esquema
PROCEDURE
CREATE
Crear triggers
TRIGGER
ALTER ANY
Modificar triggers de cualquier usuario
TRIGGER
CREATE ANY
Crear triggers en cualquier esquema
TRIGGER
DROP ANY
Borrar triggers de cualquier esquema
TRIGGER
ADMINISTER
Crear triggers de sistema (requiere además el
DATABASE
privilegio CREATE TRIGGER)
TRIGGER
CREATE Crear librerías de procedimientos y funciones en el esquema de
LIBRARY usuario
CREATE ANY Crear librerías de procedimientos y funciones en cualquier
LIBRARY esquema
DROP ANY
Borrar cualquier trigger
TRIGGER
Borrar librería de procedimientos y funciones en el esquema de
DROP LIBRARY
usuario
DROP ANY Borrar librerías de procedimientos y funciones en cualquier
LIBRARY esquema
EXECUTE ANY
Ejecutar cualquier librería
LIBRARY
Tipos de datos
CREATE TYPE Crear tipos de datos personales
ALTER ANY
Modificar tipos de datos personales en cualquier usuario
TYPE
CREATE ANY
Crear tipos de datos en cualquier esquema
TYPE
DROP ANY TYPE Borrar tipos de datos de cualquier esquema
EXECUTE ANY Permite invocar a tipos de datos personales presentes en
TYPE cualquier esquema
Índices
ALTER ANY Modificar índices de la base de datos (incluye modificar claves
INDEX primarias, secundarias,…)
CREATE ANY
Crear índices en cualquier esquema
INDEX
DROP ANY INDEX Borrar índices en cualquier esquema
Secuencias y sinónimos
ALTER ANY
Modificar secuencias de cualquier usuario
SEQUENCE
Página 10 de 20
Privilegio Significado
CREATE ANY
Crear secuencias en cualquier esquema
SEQUENCE
CREATE ANY
Crear sinónimos en cualquier esquema
SYNONYM
CREATE
Crear secuencias
SEQUENCE
CREATE
Crear sinónimos
SYNONYM
CREATE PUBLIC
Crear sinónimos públicos
SYNONYM
DROP PUBLIC
Borrar sinónimos públicos
SYNONYM
CREATE ANY
Crear secuencias en cualquier esquema
SEQUENCE
DROP ANY
Borrar secuencias en cualquier esquema
SEQUENCE
DROP ANY
Borrar sinónimos en cualquier esquema
SYNONYM
SELECT ANY
Seleccionar cualquier secuencia de cualquier esquema
SEQUENCE
Clusters
CREATE
Crea y modifica clusters en el esquema actual
CLUSTER
ALTER ANY
Modificar clusters
CLUSTER
CREATE ANY
Crear clusters en cualquier esquema
CLUSTER
DROP ANY
Borrar cualquier cluster
CLUSTER
Segmentos de rollback
CREATE
ROLLBACK Crear segmentos de rollback
SEGMENT
ALTER
ROLLBACK Modificar segmentos de rollback
SEGMENT
DROP
ROLLBACK Borrar segmento de rollback
SEGMENT
Enlaces a base de datos
CREATE Crear enlaces privados a bases de datos en el esquema del
DATABASE LINK usuario
CREATE PUBLIC
Crear enlaces públicos a bases de datos
DATABASE LINK
CREATE
Modificar enlaces privados a bases de datos
DATABASE LINK
Página 11 de 20
Privilegio Significado
CREATE PUBLIC
Modificar enlaces públicos a bases de datos
DATABASE LINK
DROP PUBLIC
Borrar enlaces públicos a bases de datos
DATABASE LINK
Programación de tareas
CREATE JOB Crear trabajo planificado en el esquema actual
Crea, modifica y elimina tareas, programas y credenciales de
CREATE ANY
cualquier esquema (excepto SYS). Esto permite ejecutar código
JOB
en cualquier esquema de cualquier usuario.
CREATE Crear un trabajo en el esquema de usuario procedente del
EXTERNAL JOB planificador de tareas del sistema operativo
EXECUTE ANY Ejecutar cualquier programa presente en un trabajo planificado
PROGRAM del esquema de usuario.
EXECUTE ANY
Asignar cualquier clase a un trbajo en el esquema de usuario.
CLASS
MANAGE
Administrar el planificador de tareas,
SCHEDULER
Varios
ANALYZE ANY Analizar cualquier tabla, clúster o índice en cualquier esquema.
ANALYZE ANY
Analizar cualquier elemento del diccionario de datos
DICTIONARY
SELECT ANY
Realizar SELECT sobre las vistas del diccionario de datos
DICTIONARY
AUDIT ANY Auditar a cualquier objeto de la base de datos
Convertirse en otro usuario al utilizar algunas de las utilidades
BECOME USER
de Oracle
COMMENT ANY Realizar comentarios sobre tablas, columnas y vistas en
TABLE cualquier esquema de la base de datos
Seleccionar los datos de la
SELECT ANY
vista FLASHBACK_TRANSACTION_QUERY que controla
TRANSACTION
el proceso de la actual operación flashback.
FORCE ANY Forzar aceptar (COMMIT) las transacciones en duda en un
TRANSACTION sistema distribuido de bases de datos en cualquier conexión
FORCE Forzar aceptar (COMMIT) la transacción actual en caso de
TRANSACTION duda.
SYSDBA Privilegio general de administrador
Varios
SYSOPER Privilegio general de administrador (más bajo que el anterior)
FLASHBACK
ARCHIVE Crea, elimina o modifica cualquier archivo de flashback
ADMINISTER
DEBUG
CONNECT Conectar la sesión a un depurador
SESSION
DEBUG ANY Conectar procedimientos, funciones y/o código Java a un
PROCEDURE depurador
Página 12 de 20
[5.6.2]conceder privilegios
Ejemplo:
Al revocar los privilegios, las acciones llevadas a cabo con ellos (borrar,
modificar,…) no se anulan.
[5.6.4]privilegios de objeto
Sintaxis:
Página 13 de 20
privilegios, que pueda, a su vez, conceder esos mismos privilegios a otro
usuario.
Privilegio Aplicable a
SELECT Tablas, vistas, instantáneas, secuencias
INSERT Tablas, vistas,
UPDATE Tablas, vistas
DELETE Tablas, vistas
ALTER Tablas, secuencias
Procedimientos, funciones, paquetes, sinónimos, programas
EXECUTE
en directorios
INDEX Tablas (para crear índices en la misma)
REFERENCES Tablas (para crear claves secundarias, FOREIGN KEY)
UNDER Vistas, para crear subvistas
Depurar procedimientos y funciones mediante programa
DEBUG
externo
ON COMMIT Actualizar la vista materializada (o instantánea) al realizar
REFRESH un COMMIT
QUERY REWRITE Escribir en la vista materializada (o instantánea)
READ Directorios
WRITE Directorios
FLASHBACK
Archivos de datos flashback (activar o desactivar)
ARCHIVE
[5.6.5]quitar privilegios de objeto
Página 14 de 20
[5.6.6]mostrar información sobre privilegios
Vista Significado
DBA_SYS_PRIVS Privilegios de sistema asignados a usuarios y roles
Lista de todos los privilegios de todos los objetos de la
DBA_TAB_PRIVS
base de datos
Lista de todos los privilegios aplicados a columnas de
DBA_COL_PRIVS
la base de datos
SESSION_PRIVS Privilegios en activo para el usuario y sesión actuales
USER_SYS_PRIVS Privilegios de sistema asignados al usuario
Privilegios de objeto asignados a los objetos del
USER_TAB_PRIVS_MADE
usuario actual
Privilegios de objeto (de otros usuarios) concedidos al
USER_TAB_PRIVS_RECD
usuario actual
USER_COL_PRIVS_MAD Privilegios de objeto asignados a columnas de objetos
E del usuario actual
Privilegios asignados a columnas de objetos (de otros
USER_COL_PRIVS_RECD
usuarios) y concedidos al usuario actual
[5.6.7]administración de roles en Oracle
Los roles son privilegios aglutinados sobre un mismo nombre, bajo la idea de
que ese conjunto denote un uso habitual sobre la base de datos. Gracias a los
roles se facilita la asignación de privilegios a los usuarios. Un usuario puede
tener asignados varios roles y viceversa.
[5.6.8]creación de roles
[5.6.9]modificación de roles
Página 15 de 20
Disponemos de la instrucción ALTER ROLE permite modificar la configuración
del rol. Tiene las mismas opciones que CREATE ROLE y sólo se usa si
deseamos establecer un nuevo método para autentificarnos.
Los usuarios tienen una serie de roles por defecto, estos son aquellos roles que
van unidos al usuario, de modo que en cuanto un usuario lanza una sesión, los
privilegios que contienen sus roles por defecto, comienzan a funcionar.
Cuando asignamos un rol mediante el comando GRANT, este pasa a ser un rol
por defecto.
[5.6.13]roles predefinidos
Oracle dispone de una serie de roles predefinidos que se pueden asignar a los
usuarios. Hay más de cincuenta roles predefinidos. Los clásicos son:
rol significado
CONNECT Permite crear sesiones. Se mantiene por compatibilidad
Permite crear tablas y código PL/SQL del tipo que sea. Se mantiene por
RESOURCE
compatibilidad
DBA Permite casi todo, excepto manejar la instancia de la base de datos
Página 16 de 20
[5.6.14]activar y desactivar roles
No todos los roles aparecen activados. Para saber los roles que están
activados en una sesión de usuario, bastará con consultar el contenido de la
vista SESSION_ROLES.
SET ROLE
{ rol1 [IDENTIFIED BY contraseña]
[,rol2 [IDENTIFIED BY contraseña] [,…]]
| ALL [EXCEPT rol1 [,rol2 [,…]]]
| NONE
};
Indicar una lista de roles que serán los que se activen (se usa cuando se
habían desactivado)
Por ello la instrucción que administra los roles por defecto es ALTER USER:
La opción ALL coloca a todos los roles como roles por defecto, EXCEPT
especifica una lista de roles que no serán colocados como roles por defecto.
Página 17 de 20
NONE hace que no haya ningún rol por defecto. Finalmente podemos
simplemente especificar la lista de roles que quedarán como roles por defecto.
[5.6.16]borrar roles
Vista Significado
DBA_ROLES Muestra todos los roles de la base de datos
DBA_ROLES_PRIVS Roles asignados a los usuarios
ROLE_ROLE_PRIVS Roles asignados a otros roles
DBA_SYS_PRIVS Privilegios de sistema asignados a usuarios y roles
ROLE_SYS_PRIVS Privilegios de sistema asignados a roles
ROLE_TAB_PRIVS Privilegios de objeto concedidos a roles
SESSION_ROLES Roles en activo para el usuario actual
[5.7] administración de perfiles de Oracle
Los perfiles permiten limitar los recursos que los usuarios usan de la base de
datos. Hay un perfil llamado DEFAULT que se aplica automáticamente a todos
los usuarios y que les da recursos ilimitados sobre la base de datos. Para
limitar el número de recursos se debe de activar (poniéndola el valor TRUE) la
variable de sistema RESOURCE_LIMIT (que por defecto está a FALSE). Esto
se hace así:
crear perfiles
Sintaxis:
Los parámetros a especificar son los que aparecen en la tabla anterior. A cada
parámetro se le indica un valor, o bien la palabra DEFAULT si deseamos que
tome su valor por defecto, o bien UNLIMITED para indicar que el parámetro
tomará un valor de infinito.
Ejemplo:
[5.7.2]borrar perfil
Página 20 de 20