일상의 개발기록
[ ORA-01950 ] 테이블스페이스 'USERS'에 대한 권한이 없습니다. 에러 처리 방법 본문
문제 상황 ) 유저 생성 및 권한까지 주고 테이블 생성까지 했는데 INSERT 가 되지 않는다.

상세 내용 )
1. CREATE USER C##SERVICE IDENTIFIED BY password ;
-> c##service 유저를 생성
2. GRANT CONNECT , RESOURCE TO C##SERVICE ;
-> c##service 유저에게 role 부여 (연결 , 자원 등)
* RESOURCE 와 CONNECT 에 각각 부여된 권한이 있는데 , 사실 저것들 따로따로 CREATE ... 권한 부여해도 되지만
귀찮으니까 ROLE 로 한방에 처리한다.

3. CREATE TABLE 회원정보 ( ... )
-> 회원정보 테이블 생성
4. INSERT INTO 회원정보() VALUES () ... 에서 해당 오류가 발생함

원인 )
새로운 사용자를 생성하게 되면 테이블이 저장되는 공간인 테이블스페이스 users에 기본적으로 할당이 된다.
그런데 이 사용자(c##service) 는 테이블스페이스의 공간을 사용할 수 있는 권한이 없기 때문에 문제가 발생한 것이다.
해결 방법 ) alter user c##service quota 100M on USERS ;
위 사용자(c##service) 에게 users 테이블스페이스에 대해 공간을 할당해준다. 나는 USERS 테이블스페이스의 100M 의 공간을 c##service에게 할당해주었다. 이제 c##service는 이 공간(100M) 내에서 원하는 데이터를 넣을 수 있게 된다. (약간 호스팅 개념이랑 비슷한 듯 하다 )
결과 ) select * from USER_TS_QUOTAS;
위 딕셔너리는 해당 계정(c##service) 에게 USERS 테이블스페이스가 max_bytes 만큼 할당되었음을 보여준다.

정상적으로 데이터가 등록되었음을 알 수 있다.
