SQL/Oracle
[Oracle] Mac ORA-01031 insufficient privileges 에러(ORA-01031)
jane.dev
2021. 9. 15. 23:10
반응형
SYSTEM 이 아닌 다른 계정(MYTEST)으로 테이블을 생성하려고 하는데 다음과 같은 에러가 뜸
해당 계정 UNLOCK을 시도해봤지만 안되고 해당 계정이 존재하지 않는다고 나옴 → 세션을 먼저 변경해줘야함
과거의 구글링했던걸 정리해둔걸로 해결함.. 아래 게시글 참고
2021.07.22 - [SQL/Oracle] - [Oracle] 맥 터미널에서 오라클 실행 및 HR계정 활성화
[Oracle] 맥 터미널에서 오라클 실행 및 HR계정 활성화
오라클 실행 1. 아래 명령문으로 오라클 Oracle XE DB 컨테이너가 켜져있는지 확인 docker ps 2. 아래와 다르게 목록에 해당 컨테이너가 없다면 컨테이너를 실행시키기 3. 컨테이너의 목록 전체를 조회
wheneveryouwantsz.tistory.com
1. 먼저 SYSTEM 계정으로 로그인해서 세션 변경
ALTER SESSION SET CONTAINER=XEPDB1; /* XEPDB1: 가상의 데이터베이스 / 연습용 데이터베이스 */
/* Session altered. */
2. MYTEST 계정 UNLOCK
ALTER USER MYTEST ACCOUNT UNLOCK;
ALTER USER [계정명] ACCOUNT UNLOCK;
/* User altered. */
3. MYTEST 계정으로 로그인
ALTER USER MYTEST IDENTIFIED BY MYTEST;
ALTER USER [계정명] IDENTIFIED BY [계정명];
/* User altered. */
4. MYTEST 계정에 테이블, 시퀀스 생성 권한 허용
GRANT CREATE TABLE TO MYTEST;
GRANT CREATE TABLE TO [계정명];
/* Grant succeeded. */
GRANT CREATE SEQUENCE TO MYTEST;
GRANT CREATE SEQUENCE TO [계정명];
/* Grant succeeded. */
테이블과 시퀀스 생성은 가능해짐
→ 테이블에 데이터 INSERT 시 no privileges on tablespace 'USERS' 에러 발생(ORA-01950)
테이블을 생성하면 기본적으로 할당받는 테이블 스페이스가 'USERS'
해당 계정이 USERS 테이블스페이스에 얼마만큼의 영역을 할당 받을 것인지 정해져있지 않은 상태로,
아래와 같이 제한을 두지 않고(UNLIMITED) 할당해주는 것으로 작성
ALTER USER MYTEST DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;
ALTER USER [계정명] DEFAULT TABLESPACE [테이블스페이스] QUOTA UNLIMITED ON [테이블스페이스];
/* User altered. */