建立新的用戶時,要指定default tablespace,不然它會把system表空間當成本身的缺省表空間。這樣作是不提倡的。估計原來建立某個用戶的時候沒有指定缺省表空間,而如今它使用系統表空間的權限被DBA給收回了。
先用的簡單的辦法試試,通常缺省的ORACLE安裝都是有USERS表空間的。
好比你要在用戶(或SCHEMA)usera中建表,那麼你用SYSTEM登陸ORACLE後,執行以下SQL
ALTER USER usera QUOTA UNLIMITED ON USERS;
若是沒有USERS表空間,則會報錯,你能夠找一個其餘的表空間,從v$tablespace能夠看到全部的表空間。服務器
下面狀況sany用戶開始建立的時候沒有制定default tablespace ********oracle
SQL> connect sany/as646333
已鏈接。
SQL> select * from user_sys_privs
2 ;ide
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
SANY CREATE SESSION NO
SANY EXECUTE ANY PROCEDURE NO
SANY CREATE USER NO
SANY CREATE TABLE NOpost
SQL> create table bjwh(user_id number(5),user_name varchar2(20),phone varchar2(12),email varchar2(20
));
create table bjwh(user_id number(5),user_name varchar2(20),phone varchar2(12),email varchar2(20))
*
第 1 行出現錯誤:
ORA-01950: 對錶空間 'USERS' 無權限spa
SQL> connect system/oracle
已鏈接。
SQL> alter user sany quota unlimited on users;blog
用戶已更改。it
SQL> connect sany/as646333
已鏈接。
SQL> create table bjwh(user_id number(5),user_name varchar2(20),phone varchar2(12),email varchar2(2
0));io
表已建立。table
SQL> disconnect
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
SQL> desc bjwh
SP2-0640: 未鏈接
SP2-0641: "DESCRIBE" 須要鏈接至服務器
SQL> connect sany/as646333
已鏈接。
SQL> desc bjwh
名稱 是否爲空? 類型
----------------------------------------- -------- ----------------------------
USER_ID NUMBER(5)
USER_NAME VARCHAR2(20)
PHONE VARCHAR2(12)
EMAIL VARCHAR2(20)class
問題解決。