giovedì 26 febbraio 2015

Creare un utente con i relativi tablespace in Oracle

Negli ultimi due giorni mi sono cimentato con manipolazione di datafile, tablespace e utenti su Oracle 11gR2.
Prima di iniziare è sempre utile verificare quali datafile e tablespace sono presenti sul sistema andando a interrogare le tabelle DBA_TABLESPACES, DBA_DATA_FILES, , DBA_TEMP_FILES.
Se non ci sono tablespace adatti ad ospitare lo schema per l'utente che si intende creare è necessario predisporre un nuovo tablespace con relativo datafile:

CREATE TABLESPACE <TBS_NAME> DATAFILE '<DBF_FILENAME>' SIZE <SIZE>
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

E' possibile agire in maniera analoga anche per creare un temporary tablespace:

CREATE TEMPORARY TABLESPACE <TEMP_TBS_NAME> TEMPFILE '<TEMP_DBF_FILENAME>' SIZE <SIZE>
REUSE;

Se i tablespace esistono, ma non sono abbastanza grandi, è possibile aggiungere datafile:

ALTER TABLESPACE <TBS_NAME> ADD DATAFILE '<DBF_FILENAME>' SIZE <SIZE>;

Oppure estendere i datafile:

ALTER DATABASE DATAFILE '<DBF_FILENAME>' RESIZE <NEW_SIZE>;

Le stesse attività possono essere fatte anche su i Temporary Tablaspace cambiano la parola DATAFILE in TEMPFILE.

Una volta che i tablespace e i datafile sono stati creati è possibile procedere alla creazione di un utente:
CREATE USER <USER> IDENTIFIED BY <PASSWORD>
DEFAULT TABLESPACE <TBS_NAME>
TEMPORARY TABLESPACE<TEMP_TBS_NAME>;

Una volta creato l'utente è necessario procedere all'assegnazione degli opportuni grant:

GRANT <GRANT1>, <GRANT2>, <GRANT3>, <GRANTN> TO <USER>;

Ora è possibile utilizzare l'utente per i proprio scopi.