1. ORA-01950
问题描述:oracle 使用 imp 导入 dmp 文件 报错, ORA-01950: no privileges on tablespace ‘TEST’。
原因:此错误通常为权限问题,此次我的问题是相关用户对当前表空间的配额不足。
解决方案:设置配额
(1) 创建用户时直接设置配额
create user test identified by 1323 quoat 20M on users;
(2) 修改用户的配额
alter user test quota 100M on users;
alter user test unlimited on users;
grant unlimited tablespace to test;
resource角色被授予用户时,用户自动就赋予了unlimited tablespace权限(虽然resource并不包含该权限),如果把这个角色回收,那么权限也自动收回。
(3) 收回权限
revoke unlimited tablesapce from test;
#针对 alter....quota unliminted.....;
alter user tast quota 0 on users;
如果用户已经被授予了unlimited tablespace权限的话,那么alter user tast quota 0 on users;限制是不起作用的。
查看表空间配额信息
视图:dba/user_ts_quota
(4) 表空间删除,配额信息仍存在
- 原因:表空间被drop后,ts 和 t s q 和tsq 和tsq中的信息没有清楚,如果重建一个同名的tablespace,并限制quota为0,tsq$中的记录就删除了
- 从10gR2开始 可以使用
drop tablesapce myt including contents and datafiles drop quota;
这样就删除了,否则默认时keep quota