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.