Anterior am creat un utilizator:

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

dar când mă autentific ca suhail și încercați să creați un table Am primit o eroare spunând ORA-01950: no privileges on tablespace "SYSTEM" . Ce eroare este? De ce apare?


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" 

Folosesc Oracle Database 11g Express Edition Release 11.2.0.2.0

Răspuns

Această eroare spune că utilizatorul nu are cote pe spațiul tabel SYSTEM care este setat ca spațiu de tabel persistent implicit. Puteți atribui unui utilizator cota astfel:

sql> alter user scott quota 50m on system; 

Aici, 50m înseamnă că cota de utilizator din spațiul de tabel SYSTEM este de 50 mebibiți. De asemenea, puteți seta cota la unlimited.

Cu toate acestea, este o practică nepotrivită să stocați datele utilizatorilor și ale aplicațiilor în spațiul de tabel SYSTEM deoarece provoacă fragmentarea datelor și astfel degradează performanța. Așadar, vă recomand să creați un nou spațiu de tabel :

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

Și apoi setați-l ca spațiu tabelar permanent al bazei de date implicite, astfel încât obiectele create de utilizatori să intre în acel tabel implicit:

Comentarii

  • puteți explica comanda alter database default tablespace users
  • Pe Oracle XE 11, spațiul de tabel al utilizatorilor există deja, deci trebuie doar să alter database default tablespace users; și alter user scott quota 50m on system;

Răspuns

Trebuie să creați un spațiu de tabel nou în baza de date, deoarece pentru SYSTEM acces spațiu tabel, sunt necesare privilegii SYSDBA.

Deci, creați un spațiu tabel nou și atribuiți-l ca spațiu tabel implicit tuturor utilizatorilor. Când creați orice utilizator, în mod implicit acesta va atribui un anumit spațiu de tabelă.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *