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 사용권한이 있다고 나오고 있습니다.
'IT관련' 카테고리의 다른 글
[SQL] 오라클의 if then else 표현 decode, case when 문장 (0) | 2020.05.15 |
---|---|
Oracle SQL Developer 메뉴 인터페이스 한글, 영문 변환 Change UI Language (0) | 2020.05.08 |
Oracle 19c 에서 멀티테넌트 DB 생성 (Create Multitenant Database) (0) | 2020.04.16 |
멀티테넌트 DB(CDB) 내의 PDB 에서 변경할 수 있는 DB 초기화 파라메타 (0) | 2020.04.13 |
멀티테넌트 DB(CDB) 내의 PDB 들간의 시스템 자원(CPU, Memory, Disk IO) 경합 (0) | 2020.04.13 |