Eerder heb ik een gebruiker aangemaakt:

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

maar als ik inlog als suhail en probeer een table te maken. Ik krijg een foutmelding met ORA-01950: no privileges on tablespace "SYSTEM" . Welke fout is het? Waarom gebeurt dit?


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" 

Ik gebruik Oracle Database 11g Express Edition Release 11.2.0.2.0

Answer

Deze fout zegt dat de gebruiker “geen quota heeft voor de tabelruimte SYSTEM die is ingesteld als de standaard persistente tabelruimte. U kunt een gebruiker het quotum als volgt toewijzen:

sql> alter user scott quota 50m on system; 

Hier 50m betekent dat het gebruikersquotum op de SYSTEM -tabelruimte 50 mebibytes is. U kunt het quotum ook instellen op unlimited.

Het is echter een slechte gewoonte om gebruikers- en applicatiegegevens op te slaan in SYSTEM tabelruimte, aangezien dit gegevensfragmentatie veroorzaakt en dus de prestaties verslechtert. Daarom raad ik u aan een nieuwe permanente tabelruimte te maken :

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

En stel het vervolgens in als de standaard database permanente tabelruimte zodat objecten die door de gebruikers zijn gemaakt naar die standaard tabelruimte gaan:

Reacties

  • kun je het commando uitleggen alter database default tablespace users
  • Op Oracle XE 11 bestaat de tabelruimte van de gebruiker al, dus u hoeft alleen alter database default tablespace users; en alter user scott quota 50m on system;

Antwoord

Je moet een nieuwe tabelruimte aanmaken in de database omdat voor de SYSTEM toegang tot de tabelruimte, SYSDBA rechten zijn vereist.

Maak dus een nieuwe tabelruimte aan en wijs deze toe als de standaardtabelruimte aan alle gebruikers. Wanneer u een gebruiker aanmaakt, zal deze standaard een bepaalde tafelruimte toewijzen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *