ora-01950 对表空间无权限

本文介绍了当Oracle用户尝试创建表但遇到ORA-01950错误时的解决步骤。通常是因为用户缺少必要的资源权限或者没有指定默认表空间。通过调整用户配额或授权resource角色来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建新的用户时,要指定default   tablespace,否则它会把system表空间当成自己的缺省表空间。这样做是不提倡的。估计原来创建某个用户的时候没有指定缺省表空间,而现在它使用系统表空间的权限被DBA给收回了。  
  先用的简单的办法试试,一般缺省的ORACLE安装都是有USERS表空间的。  
  比如你要在用户(或SCHEMA)usera中建表,那么你用SYSTEM登录ORACLE后,执行如下SQL  
   
 ALTER   USER   usera   QUOTA   UNLIMITED   ON   USERS;   
  如果没有USERS表空间,则会报错,你可以找一个其他的表空间,从v$tablespace可以看到所有的表空间。

 

下面情况sany用户开始创建的时候没有制定default tablespace   ********


SQL> connect sany/as646333
已连接。
SQL> select * from user_sys_privs
  2  ;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
SANY                           CREATE SESSION                           NO
SANY                           EXECUTE ANY PROCEDURE                    NO
SANY                           CREATE USER                              NO
SANY                           CREATE TABLE                             NO

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' 无权限


SQL> connect system/oracle
已连接。
SQL> alter user sany quota unlimited on users;

用户已更改。

SQL> connect sany/as646333
已连接。
SQL>  create table bjwh(user_id number(5),user_name varchar2(20),phone varchar2(12),email varchar2(2
0));

表已创建。

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)

 

问题解决。


用户x建表的时候提示:ora-01950:对表空间‘x’无权限

 

原因:用户没有resource权限

解决方法:连接sys用户,赋予用户x resource权限

          grant resource to x;

 

嘿嘿,又搜了下resource的知识,先学习,后转载:

###########################################################################################

  grant connect,resource to user;
  然后,用户包括的权限:
   CONNECT角色: --是授予最终用户的典型权利,最基本的
    ALTER SESSION --修改会话
    CREATE CLUSTER --建立聚簇
    CREATE DATABASE LINK --建立数据库链接
    CREATE SEQUENCE --建立序列
    CREATE SESSION --建立会话
    CREATE SYNONYM --建立同义词
    CREATE VIEW --建立视图

    RESOURCE角色: --是授予开发人员的
    CREATE CLUSTER --建立聚簇
    CREATE PROCEDURE --建立过程
    CREATE SEQUENCE --建立序列
    CREATE TABLE --建表
    CREATE TRIGGER --建立触发器
    CREATE TYPE --建立类型

    从dba_sys_privs里可以查到:
    SQL> select grantee,privilege from dba_sys_privs
         2 where grantee='RESOURCE' order by privilege;

    GRANTEE PRIVILEGE
    ------------ ----------------------
    RESOURCE CREATE CLUSTER
    RESOURCE CREATE INDEXTYPE
    RESOURCE CREATE OPERATOR
    RESOURCE CREATE PROCEDURE
    RESOURCE CREATE SEQUENCE
    RESOURCE CREATE TABLE
    RESOURCE CREATE TRIGGER
    RESOURCE CREATE TYPE
    已选择8行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值