Tidigare skapade jag en användare:

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

men när jag loggar in som suhail och försök skapa en table Jag får ett felmeddelande som säger ORA-01950: no privileges on tablespace "SYSTEM" . Vilket fel är det? Varför inträffar det?


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" 

Jag använder Oracle Database 11g Express Edition version 11.2.0.2.0

Svar

Detta fel säger att användaren inte har någon kvot i tabellutrymmet SYSTEM som är inställd som standard ihållande tabellutrymme. Du kan tilldela en användare kvoten så här:

sql> alter user scott quota 50m on system; 

Här, 50m betyder att användarkvoten på SYSTEM tabellutrymmet är 50 mebibytes. Du kan också ställa kvoten till unlimited.

Det är dock dåligt att lagra användar- och applikationsdata i SYSTEM tabellutrymme eftersom det orsakar datafragmentering och därmed försämrar prestanda. Så jag skulle rekommendera dig att skapa en ny permanent tabellutrymme :

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

Ställ sedan in den som permanent databasens permanenta tabellutrymme så att objekt som skapats av användarna går in i standardtabellutrymmet:

Kommentarer

  • kan du snälla förklara kommandot alter database default tablespace users
  • På Oracle XE 11 finns tabellen för användare redan, så du behöver bara alter database default tablespace users; och alter user scott quota 50m on system;

Svar

Du måste skapa en ny tabellutrymme i databasen för SYSTEM tablespace access, SYSDBA behörigheter krävs.

Skapa en ny tabellutrymme och tilldela den som standardtabellutrymme till alla användare. När du skapar en användare kommer den som standard att tilldela särskild tabellutrymme.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *