ORA-01950: 테이블스페이스 에 대한 권한이 없습니다. 해결하기 (ORA-01950: no privileges on tablespace)

ORA-01950: 테이블스페이스 에 대한 권한이 없습니다. 오류를 해결해 보도록 합시다. 일반적으로 발생하는 생성, 수정, 조회 권한이 아니라 테이블스페이스에 관한 공간 할당 권한이 없는 경우, 해당과 같은 오류가 발생한답니다.

  • 새로 생성된 유저가 해당 테이블스페이스에 할당 권한이 없는 경우에 발생합니다.
  • 테이블을 생성하려고 시도했으나, ORA-01950: 테이블스페이스 에 대한 권한이 없습니다.

예제 자료는 테이블스페이스에 해당 무제한 할당 및 기본 테이블스페이스를 지정합니다. 둘 중 하나만 해도 되며, 할당량을 지정하려면 Unlimited 대신에 할당할 용량을 설정해 주세요.

가끔 ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다. 와 같이 메시지가 나오기도 하는데 USERS가 기본 테이블스페이스로 설정된 경우이며, 유저와는 무관합니다. => 신규 사용자에 대한 기본 테이블스페이스가 <USERS>인 경우입니다. 해당과 같은 오류는 권한 설정으로 해결할 수 있습니다.

--무제한 할당

ALTER USER userName QUOTA UNLIMITED ON tablespaceName;

--기본 테이블스페이스 지정 및 무제한 할당

ALTER USER userName DEFAULT TABLESPACE tablespaceName QUOTA UNLIMITED ON USERS;
ORA-01950: 테이블스페이스 에 대한 권한이 없습니다.
--계정에 대한 테이블스페이스 할당을 변경처리합니다.

--user_name에게 테이블스페이스 할당을 무제한으로 설정합니다.
ALTER USER user_name QUOTA UNLIMITED ON tablespace_name;

--user_name의 기본 테이블스페이스 설정과 무제한 할당을 설정합니다.
ALTER USER user_name DEFAULT TABLESPACE tablespace_name QUOTA UNLIMITED ON tablespace_name;

--user_name 에게 테이블스페이스 할당을 100M 만큼 설정합니다.
ALTER USER user_name QUOTA 100M ON tablespace_name;
--ORA-01950 원인
User does not have privileges to allocate an extent in the specified tablespace.

--ORA-01950 해결하기
Grant the user the appropriate system privileges or grant the user space resource on the tablespace.

--테이블스페이스 문법
ALTER USER <userName> [DEFAULT TABLESPACE <tablespaceName>] [QUOTA [sizeClause | UNLIMITED] ON <tablespaceName>];

--예시는 UNLIMITED 를 할당하였으나 별도의 크기를 지정하셔도 됩니다.
ALTER USER user_name DEFAULT TABLESPACE tablespace_name QUOTA UNLIMITED ON tablespace_name;

댓글