Assegnazione quota DEFAULT_TABLESPACE

Pubblicato da Patrizia Gardis il

La query nell’articolo Assegnazione quota DEFAULT_TABLESPACE, ha lo scopo di creare il comando, attraverso una query dinamica, di assegnare la quota di un utente sul proprio default_tablespace, prendendo in considerazione la quota assegnata di un utente già presente sul database.

Ogni utente che viene creato nel database ha il proprio tablespace di default, il quale è utilizzato come area per la creazione degli oggetti, nel caso in cui il TABLESPACE di destinazione non viene dichiarato.
Oltre al TBSP di default, abbiamo la possibilità di scrivere anche su altri tablespace, ma a condizione della quota utente impostata o in fase di creazione, o successivamente con lo statement fornito in fondo all’articolo.

Ogni utente dovrebbe avere una quota di scrittura impostata sul proprio TBSP di riferimento. Tuttavia, dalle mia esperienza decennale sui database Oracle, i DBA che impostano la Quota di qualche MB sul TBSP di default sono veramente pochi.

La clausola che viene impostata nella maggior parte dei DB Oracle è UNLIMITED.

Con il privilegio UNLIMITED possiamo scrivere senza preoccuparci di terminare la quota.

Ma, nel caso in cui dovessimo impostare una quota standard in cui l’azienda proprietaria del database si basa, la query di seguito farà al caso nostro.

Basta eseguire la query e fornire il nome dell’utente da cui vogliamo copiare la quota nel momento in cui ci viene richiesto.

Creazione comando assegnazione quota utente DEFAULT_TABLESPACE:

select 'alter user &userid quota '||
decode(max_bytes, -1, 'unlimited',
ceil(max_bytes / 1024 / 1024) || 'M') ||
' on ' || tablespace_name || ';'
from dba_ts_quotas
where username = '&userid';

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin


0 commenti

Lascia un commento

Segnaposto per l'avatar