Quote e password

Le quote in Oracle

Se ciascun utente avesse a disposizione uno spazio di memorizzazione illimitato all’interno del database, questo aumenterebbe a dismisura. Questo è uno dei motivi per i quali viene stabilita una quota, ovvero uno spazio con dimensione prestabilita, per ciascun utente o almeno per quelli la cui dimensione degli oggetti posseduti rischia di aumentare in maniera incontrollata.

Le quote possono essere espresse in byte, in kilobyte, in megabyte oppure in maniera illimitata mediante la clausola UNLIMITED. Per dichiarare una quota tramite i comandiCREATE USER e ALTER USER usiamo la clausola QUOTA. Vediamo qualche esempio.

Creazione di un utente con quota di 24MB nel tablespace “users”

SQL> CREATE USER pierf IDENTIFIED BY nando67
  2  DEFAULT TABLESPACE users
  3  TEMPORARY TABLESPACE temp
  4  QUOTA 24M ON users;

La dimensione della quota è espressa nel formato ”numero + suffisso“, dove il suffisso può essere K per indicare lo spazio in kilobyte ed M per indicare lo spazio in megabyte. Quando non specifichiamo alcun suffisso allora la quota è intesa in byte.

Nel prossimo esempio assegnamo ad un utente già creato, una quota illimitata all’interno del suo default tablespace. L’utente in questo caso non avrà limitazioni di spazio.

Assegnazione posticipata di una quota per un utente

SQL> CREATE USER noise IDENTIFIED BY home
  2  DEFAULT TABLESPACE users
  3  TEMPORARY TABLESPACE temp;

SQL> ALTER USER noise QUOTA UNLIMITED ON users;

Scadenza delle password utente

L’amministratore di database può decidere di far scadere la validità di una password utente e di costringere lo stesso utente a modificarla al successivo accesso al DB. Per far scadere una password si usa la clausola PASSWORD EXPIRE nel comando CREATE USER oppure ALTER USER.

Creazione di un utente con scadenza della password

SQL> CREATE USER angel IDENTIFIED BY cresch34
  2  DEFAULT TABLESPACE users
  3  TEMPORARY TABLESPACE temp
  4  PASSWORD EXPIRE;

Concedere all’utente il permesso di collegarsi al database

SQL> GRANT CREATE SESSION TO angel;

Ai permessi dedicheremo attenzione più avanti. Colleghiamoci al database “ARCHIVIO” mediante l’utente “angel”.

SQL> CONNECT angle/cresch34@ arch-serv
ERROR:
ORA-28001: the password has expired

Cambio password per angel
Nuova password: *****
Digitare nuovamente la nuova password: *****
Password cambiata
Connesso.

Oracle ha avvisato l’utente angel che la sua password è scaduta, costringendolo a scegliere una nuova password e a confermarla una seconda volta.

Bloccare l’account

Se l’amministratore di database vuole evitare che un utente si colleghi allora può decidere di bloccare il suo account. A tale scopo si usa la clausola ACCOUNT LOCK nel comandoCREATE USER oppure ALTER USER. Blocchiamo l’account “angel”, creato nell’esempio precedente.

SQL> ALTER USER angel ACCOUNT LOCK;

Se proviamo la connessione con l’utente “angel” questa ci verrà rifiutata.

SQL> CONNECT angel/ cresch34@ arch-serv
ERROR:
ORA-28000: the account is locked
Avvertenza: Connessione a ORACLE interrotta.

Per sbloccare l’utente usiamo la clausola ACCOUNT UNLOCK.

SQL> ALTER USER angel ACCOUNT UNLOCK;

Ora l’utente “angel” può nuovamente collegarsi al database. Per bloccare e sbloccare un utente è necessario collegarsi al database mediante l’utente amministrativo SYSTEM.

Both comments and pings are currently closed.

Comments are closed.