建立新的用户时,要指定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
问题解决。