Korábban létrehoztam egy felhasználót:

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

, de amikor suhail és próbáljon létrehozni egy table hibát kapok >. Milyen hiba van? Miért fordul elő?


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" 

Oracle Database 11g Express Edition 11.2.0.2.0 kiadást használok

Válasz

Ez a hiba azt mondja, hogy a felhasználónak nincs kvótája a táblaterületen SYSTEM amely az alapértelmezett állandó táblaterületként van beállítva. A felhasználóhoz így rendelheti hozzá a kvótát:

sql> alter user scott quota 50m on system; 

Itt, 50m azt jelenti, hogy a felhasználói kvóta a SYSTEM táblaterületen 50 mebibájt. A kvótát beállíthatja unlimited.

Mindazonáltal nem megfelelő gyakorlat a felhasználói és alkalmazásadatok tárolása a SYSTEM táblaterületbe, mivel ez az adatok töredezettségét okozza és ezáltal rontja a teljesítményt. Ezért azt javasoljuk, hogy hozzon létre egy új állandó táblaterületet :

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

Ezután állítsa be alapértelmezett adatbázis állandó táblaterületként, hogy a felhasználók által létrehozott objektumok belépjenek az alapértelmezett táblaterületbe:

Megjegyzések

  • elmagyarázza a alter database default tablespace users
  • Az Oracle XE 11 rendszeren a felhasználók táblaterülete már létezik, ezért csak alter database default tablespace users; és alter user scott quota 50m on system;

Válasz

Egy új táblaterületet kell létrehoznia az adatbázisban, mert a SYSTEM tablespace hozzáférés, SYSDBA privilégiumok szükségesek.

Tehát hozzon létre egy új táblaterületet, és rendelje hozzá alapértelmezett táblaterületként az összes felhasználó számára. Bármely felhasználó létrehozásakor alapértelmezés szerint az adott táblaterületet adja hozzá

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük