In precedenza ho creato un utente:

SQL>create user suhail identified by password SQL>User created. SQL>Grant create session,create table to suhail; SQL>Grant Succeeded. 

ma quando accedo come suhail e provo a creare un table ricevo un errore che dice ORA-01950: no privileges on tablespace "SYSTEM" . Che errore è? Perché si verifica?


SQL> connect suhail Enter password: Connected. SQL> create table suhail_table(name char(10)); create table suhail_table(name char(10)) * ERROR at line 1: ORA-01950: no privileges on tablespace "SYSTEM" 

Sto utilizzando Oracle Database 11g Express Edition Release 11.2.0.2.0

Risposta

Questo errore indica che lutente non “ha quota nel tablespace SYSTEM che è impostato come tablespace persistente predefinito. Puoi assegnare a un utente la quota in questo modo:

sql> alter user scott quota 50m on system; 

Qui, 50m significa che la quota utente sul tablespace SYSTEM è di 50 mebibyte. Puoi anche impostare la quota su unlimited.

Tuttavia è una cattiva pratica memorizzare i dati dellutente e dellapplicazione nel tablespace SYSTEM poiché provoca la frammentazione dei dati e quindi riduce le prestazioni. Quindi ti consiglio di creare un nuovo tablespace permanente :

sql> create smallfile tablespace users datafile "/u01/app/oracle/oradata/ORCL/users.dbf" size 10g; 

Quindi impostalo come tablespace permanente del database predefinito in modo che gli oggetti creati dagli utenti vadano in quel tablespace predefinito:

Commenti

  • puoi spiegare il comando alter database default tablespace users
  • Su Oracle XE 11, lo spazio tabella degli utenti esiste già, quindi devi solo alter database default tablespace users; e alter user scott quota 50m on system;

Risposta

Devi creare un nuovo spazio tabella nel database perché per SYSTEM accesso al tablespace, sono richiesti i privilegi SYSDBA.

Quindi, crea un nuovo tablespace e assegnalo come tablespace predefinito a tutti gli utenti. Quando crei un utente, per impostazione predefinita assegnerà uno spazio tabella particolare.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *