Vamos a crear un nuevo usuario en Oracle.
Podemos crear directamente el usuario, pero es mejor empezar creando el tablespace para datos y para índices.
Aquí es donde se almacena los objetos que va a crear el usuario.
CREATE TABLESPACE "TABLAS4" LOGGING DATAFILE '/export/home/oracle/oradata/datafiles/tablas.dbf' SIZE 2000M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; CREATE TABLESPACE "INDICES4" LOGGING DATAFILE '/export/home/oracle/oradata/datafiles/indices.dbf' SIZE 1500M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; |
Ahora creamos el usuario:
CREATE TABLESPACE "NUEVOUSER" LOGGING DATAFILE '/export/home/oracle/oradata/datafiles/users01.dbf' SIZE 50M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; ALTER DATABASE DEFAULT TABLESPACE "USERS"; |
Ahora creamos el usuario y le decimos el tablespace que tiene por defecto y el que cogerá sino se lo indicamos:
CREATE USER "USU01" PROFILE "DEFAULT" IDENTIFIED BY "USU01PWD" DEFAULT TABLESPACE "TABLAS4" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; |
Lo mismo ocurre cuando creamos tablas e índices, tenemos que indicar el tablespace correspondiente para las tablas y los índices que hemos creado antes.
Y ahora le damos permisos:
GRANT CONNECT, RESOURCE TO USU01; |
Podemos darle permisos como administrador:
GRANT DBA TO USU01; |
O podemos darles privilegios sobre objetos que nosotros decidamos:
GRANT ALTER ANY INDEX TO USU01; GRANT CREATE ANY INDEX TO USU01; GRANT DROP ANY INDEX TO USU01; GRANT DROP ANY VIEW TO USU01; GRANT INSERT ANY TABLE TO USU01; GRANT SELECT ANY TABLE TO USU01; GRANT UNLIMITED TABLESPACE TO USU01; |
Y así sucesivamente. Podemos asignar permisos en ejecución de procesos, en directorios para el tratamiento de ficheros desde Oracle o paquetes Java, por ejemplo:
GRANT EXECUTE any PROCEDURE TO USU01; GRANT READ, WRITE ON directory dir_firmas TO USU01; EXEC dbms_java.grant_permission('USU01','java.io.FilePermission','/pruebas/-','read'); |