Contents
see ListOracle ORA-01950 오류 해결 및 유저 생성 가이드
ORA-01950은 테이블스페이스에 대한 권한이 없을 때 발생합니다. 오라클 설치 후 또는 유저 생성 시 설정해야 할 필수 사항들을 정리합니다.
1. ORA-01950 오류 원인
ORA-01950: no privileges on tablespace "USERS"
-- 원인: 해당 테이블스페이스에 공간 할당 권한 없음
2. 해결 방법
-- 방법 1: 특정 테이블스페이스에 용량 할당
ALTER USER 사용자명 QUOTA 100M ON USERS;
ALTER USER 사용자명 QUOTA 500M ON 테이블스페이스명;
-- 방법 2: 무제한 용량 할당 (권장)
ALTER USER 사용자명 QUOTA UNLIMITED ON USERS;
-- 방법 3: 무제한 테이블스페이스 권한 부여
GRANT UNLIMITED TABLESPACE TO 사용자명;
3. 유저 생성 시 권장 설정
-- 1. 유저 생성
CREATE USER 사용자명 IDENTIFIED BY 비밀번호
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
-- 2. 기본 권한 부여
GRANT CONNECT, RESOURCE TO 사용자명;
-- 3. 테이블스페이스 할당량 설정
ALTER USER 사용자명 QUOTA UNLIMITED ON USERS;
-- 4. 필요 시 추가 권한
GRANT CREATE VIEW TO 사용자명;
GRANT CREATE SYNONYM TO 사용자명;
4. 원스텝 유저 생성 스크립트
-- 개발용 유저 생성 (모든 필수 설정 포함)
CREATE USER dev_user IDENTIFIED BY dev1234
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON USERS;
GRANT CONNECT, RESOURCE TO dev_user;
GRANT CREATE VIEW, CREATE SYNONYM TO dev_user;
GRANT CREATE SEQUENCE TO dev_user;
5. 현재 할당량 확인
-- 사용자별 테이블스페이스 할당량
SELECT tablespace_name, username, max_bytes, bytes
FROM dba_ts_quotas
WHERE username = UPPER("사용자명");
-- 또는 자신의 할당량 확인
SELECT * FROM user_ts_quotas;
6. Oracle 12c 이상 주의사항
-- CDB 환경에서 공통 유저 생성 (C## 접두사 필요)
CREATE USER C##사용자명 IDENTIFIED BY 비밀번호;
-- PDB 접속 후 로컬 유저 생성
ALTER SESSION SET CONTAINER = PDB명;
CREATE USER 사용자명 IDENTIFIED BY 비밀번호;
-- 또는 접두사 규칙 비활성화 (비권장)
ALTER SESSION SET "_ORACLE_SCRIPT"=true;
7. CONNECT, RESOURCE 권한 내용
| 역할 | 포함 권한 |
|---|---|
| CONNECT | CREATE SESSION |
| RESOURCE | CREATE TABLE, CREATE SEQUENCE, CREATE PROCEDURE, CREATE TRIGGER 등 |
8. 문제 해결 체크리스트
-- 1. 유저 존재 확인
SELECT username FROM dba_users WHERE username = UPPER("사용자명");
-- 2. 권한 확인
SELECT * FROM dba_role_privs WHERE grantee = UPPER("사용자명");
-- 3. 테이블스페이스 확인
SELECT tablespace_name, status FROM dba_tablespaces;
-- 4. 할당량 확인 및 수정
SELECT * FROM dba_ts_quotas WHERE username = UPPER("사용자명");
ALTER USER 사용자명 QUOTA UNLIMITED ON USERS;
주의사항
- UNLIMITED TABLESPACE는 보안상 주의 필요
- 프로덕션 환경에서는 용량 제한 권장
- DBA 권한 없이는 ALTER USER 불가