Created: 2026-06-08 lun 18:29
users: Tablespace asignado por defecto para los datos de todos los usuariossystem: Datos acerca de la instancia y del diccionario de datossysaux: Operaciones temporales del administrador que no caben en memoriaundo (undotbs1): Datos para deshacer las transacciones (rollback)temp: Operaciones temporales de usuarios que no caben en memoriaselect tablespace_name, contents from dba_tablespaces;
Mas información en:
CREATE TABLESPACE ejemplo_tablespace
DATAFILE
'/tablespaces/ejemplo_1.dbf' SIZE 10M
AUTOEXTEND ON NEXT 200k MAXSIZE 14M,
'/tablespaces/ejemplo_2.dbf' SIZE 10M
AUTOEXTEND ON NEXT 200k MAXSIZE 14M;
Más en docs.oracle.com
ORA-01653dba_users)alter user)DATABASE_PROPERTIES)alter database)
ALTER TABLE ... MOVE TABLESPACEPRUEBA1
PRUEBA1MISDATOS(DATOS VARCHAR(255))PRUEBA1PRUEBA2
MISDATOS a PRUEBA2PRUEBA2
Más información en Oracle.com
ORA-01157: cannot identify/lock data file 46 - see DBWR trace file ORA-01110: data file 46: '/home/students/usuario12/tablespaces/NUEVO_TB_2.dbf'
show pdbs;
ALTER SESSION SET CONTAINER = <nombre de pdb>;
SELECT
df.file#,
df.name AS file_name,
ts.name AS tablespace_name,
df.status,
df.enabled,
FROM v$datafile df
JOIN v$tablespace ts ON df.ts# = ts.ts#
where df.name like '%el fichero que se busca%'
ORDER BY df.file#;
ALTER SESSION SET CONTAINER = pdb_usuario12;
ALTER DATABASE DATAFILE 46 OFFLINE DROP;
ALTER DATABASE DATAFILE 50 OFFLINE DROP;
ALTER DATABASE DATAFILE 55 OFFLINE DROP;
ALTER DATABASE DATAFILE 57 OFFLINE DROP;
ALTER DATABASE DATAFILE 59 OFFLINE DROP;
ALTER DATABASE DATAFILE 61 OFFLINE DROP;
ALTER DATABASE DATAFILE 63 OFFLINE DROP;
ALTER DATABASE DATAFILE 65 OFFLINE DROP;
ALTER DATABASE DATAFILE 66 OFFLINE DROP;
ALTER DATABASE DATAFILE 67 OFFLINE DROP;
ALTER DATABASE DATAFILE 69 OFFLINE DROP;
ALTER DATABASE DATAFILE 70 OFFLINE DROP;
ALTER DATABASE DATAFILE 71 OFFLINE DROP;
alter session set container = cdb$root;
shutdown immediate;
startup open;
¿Qué usuario hemos utilizado con sqlplus hasta ahora?
os_authent_prefix)wheel era administradorCREATE USER usuario IDENTIFIED BY contrasena
DEFAULT TABLESPACE tablespace
TEMPORARY TABLESPACE tablespace
QUOTA UNLIMITED ON tablespace
QUOTA tamano ON tablespace
ACCOUNT LOCK
ACCOUNT UNLOCK
Modificación de un usuario ya creado
ALTER USER usuario
cualquier opcion valida al crear usuario
Borrado de usuario
DROP USER usuario
| Privilegio | Objeto sobre el que se aplica |
|---|---|
Create, alter, drop |
Table, sequence, view, user, synonym, session, procedure |
select, update, delete, insert |
Sobre campos de tablas y filas |
Grantgrant PRIVILEGIO1,PRIVILEGIO2,...,PRIVILEGION
on OBJETO
to USUARIO
with grant option;
create table alumnos(...);
create user profesor ...;
grant select on alumnos to profesor;
CONPERMISOS
connect y resourceDATOS(TEXTO varchar2(255),numero integer)LIMITADOCONPERMISOS de privilegios a LIMITADO para que:
DATOSNUMERO de tabla DATOSTEXTO, ni borrar filas, ni insertar filasCONPERMISOS tenga una cuota de 100k en el tablespace USERSDATOSrevokewith grant optionconnect sys/*******
grant select on unatabla to unusuario with grant option;
connect unusuario/*******
grant select on unatabla to otrousuario;
connect sys/*******
revoke select on unatabla from unusuario;
-- AQUI NI unusuario NI otrousuario TIENEN PRIVILEGIO SOBRE unatabla
CREATE ANY TABLE, CREATE ANY VIEW,…CREATE SESSION, CREATE SYNONYM,..UNLIMITED TABLESPACE, SYSDBA,…create role NOMBREROL;
grant PRIVILEGIOS on OBJETOS to NOMBREROL;
grant NOMBREROL to USUARIO;
Se pueden asignar privilegios a PUBLIC, para que todos los usuarios tengan dicho privilegio. Decide si PUBLIC es un usuario o un rol, y compruébalo en las tablas de diccionario.
USUARIOANTESUSUARIODESPUESUSUARIODESPUES, ¿tiene más, menos o los mismos privilegios que USUARIOANTES?
SET ROLEselect * from session_roles;
select * from session_privs;
start with: Primeras filas seleccionadas de la tablaconnect by:
prior: Hace referencia a la columna de la fila previamente ya seleccionadaprior: Hace referencia a la columna de la fila actualselect * from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER' order by 1,2,3;
select * from dba_sys_privs where grantee = '&USER' or grantee in (
select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER'
)
order by 1,2,3;
select * from dba_tab_privs where grantee = '&USER' or grantee in (
select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER'
)
order by 1,2,3,4;
Ver connect by prior
CREATE PROFILE nombreperfil LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL 3000
CONNECT_TIME 45
IDLE_TIME 1
LOGICAL_READS_PER_SESSION DEFAULT
LOGICAL_READS_PER_CALL 1000
PRIVATE_SGA 15K
COMPOSITE_LIMIT 5000000;
ALTER SYSTEM SET resource_limit = TRUE scope = BOTH
En la creación (create user), o posteriormente
alter user USUARIO profile NOMBREDEPERFIL
LIMITADO
PASSWORD_VERIFY_FUNCTION para evitar que las contraseñas sean más largas de tres caracteres