본문 바로가기

IT관련

오라클 에러 정보 (ORA-01950) - no privileges on tablespace 'USERS'

Oracle DB 내에서 CTAS(Create Table As Select) 로 테이블을 생성하거나 Insert 하려고 할때 ORA-01950 에러를 만나는 경우가 있습니다. 데이터를 기록하려고 하는 테이블스페이스(Tablespace)에 권한(privilege)이 없어서 발생하는 에러입니다.

 

 

따라서, 해결방법은 간단히 권한을 주면 끝입니다.

 

alter user SCOTT quota 50M on USERS;

 

위는 scott 유저에게 USERS 테이블스페이스를 50MB 사용할 수 있도록 권한을 주는 것입니다.

 

scott 유저에게 모든 테이블스페이스에 대한 무제한 사용권한을 주고자 하는 경우에는 아래처럼 합니다.

 

grant unlimited tablespace to SCOTT;

 

예전 Old 버전의 Oracle DBMS 에서는 그냥 DB User 만들때 connect, resource 권한만 주면 Tablespace 에 대한 권한부여같은 거 하지 않아도 되었었는데, 이게 언제부턴가 바뀌었습니다.

 

해당 유저에 어떤 Tablespace 에 어느정도의 사용권한이 있는지 확인해보고자 하는 경우에는 USER_TS_QUOTAS 딕셔너리를 조회하면 됩니다.

 

 

위는 scott 유저에서 조회한 것인데, USERS Tablespace 에 대해 50MB 사용권한이 있다고 나오고 있습니다.