Oracle
“ORA-01950:對錶空間 ‘SYSTEM’ 沒有權限”:這是什麼錯誤?
之前我創建了一個使用者:
SQL>create user suhail identified by password SQL>User created. SQL>Grant create session,create table to suhail; SQL>Grant Succeeded.
但是當我以身份登錄
suhail
並嘗試創建一個時,table
我收到一條錯誤消息*ORA-01950: no privileges on tablespace 'SYSTEM'
*。這是什麼錯誤?為什麼會發生?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 Release 11.2.0.2.0
SYSTEM
此錯誤表示使用者在設置為預設持久表空間的表空間上沒有配額。您可以像這樣為使用者分配配額:sql> alter user scott quota 50m on system;
這裡,
50m
表示SYSTEM
表空間上的使用者配額為 50 MB。您還可以將配額設置為unlimited
。但是,將使用者和應用程序數據儲存在
SYSTEM
表空間中是一種不好的做法,因為它會導致數據碎片並因此降低性能。所以我建議你創建一個新的永久表空間:sql> create smallfile tablespace users datafile '/u01/app/oracle/oradata/ORCL/users.dbf' size 10g;
然後將其設置為預設數據庫永久表空間,以便使用者創建的對象進入該預設表空間:
sql> alter database default tablespace users;