一、问题说明

用户 TESTUSER 出现如下报错:

ORA-01950: no privileges on tablespace 'USERS’ 

二、原因分析

说明数据库用户 TESTUSER在 USERS 表空间上没有使用权限。

🔎 常见报错原因

Oracle 在创建表、索引或插入数据时,需要向表空间申请磁盘空间。

如果用户没有在目标表空间上的 quota(配额),就会报 ORA-01950。

常见场报错景:

1)新建用户时没有指定默认表空间,系统默认使用 USERS,但没有给配额。

2)插入大量数据或创建对象时超出了配额。

三、处理方法

1.检查当前配额

SELECT tablespace_name, max_bytes
FROM dba_ts_quotas
WHERE username = 'TESTUSER';

2.给用户分配表空间配额
以 DBA 用户(如 sys 或 system)登录,执行:

-- 给某个用户在 USERS 表空间上无限制使用权限
ALTER USER TESTUSER QUOTA UNLIMITED ON USERS;

-- 或者分配固定配额,比如 1000M
ALTER USER TESTUSER QUOTA 1000M ON USERS;

3.检查当前配额

SELECT tablespace_name, max_bytes
FROM dba_ts_quotas
WHERE username = 'TESTUSER';

注:max_bytes = -1 表示 UNLIMITED。

👉 总结:
解决方法就是给该用户在表空间上分配 quota,通常设置为 UNLIMITED ON USERS 就能解决。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐