2026년 06월 30일 | DBMS Error 가이드
이 글에서 다루는 내용
ORA-01035 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.
ORA-01035 ORACLE only available to users with RESTRICTED SESSION privilege 는?
ORA-01035는 데이터베이스가 RESTRICTED SESSION 모드로 운영 중일 때, 해당 권한이 없는 일반 사용자가 접속을 시도할 경우 발생하는 에러입니다. 이 모드는 주로 데이터베이스 유지보수, 패치 적용, 대규모 데이터 마이그레이션 등 DBA가 시스템을 독점적으로 관리해야 할 상황에서 활성화됩니다. RESTRICTED SESSION 권한을 명시적으로 부여받은 사용자(주로 DBA)만이 정상적으로 로그인할 수 있으며, 그 외의 모든 사용자는 이 에러를 마주하게 됩니다.
주요 발생 원인
1. 데이터베이스가 RESTRICTED MODE로 시작된 경우
DBA가 의도적으로 STARTUP RESTRICT 명령으로 데이터베이스를 기동하거나, ALTER SYSTEM ENABLE RESTRICTED SESSION 명령을 실행한 경우입니다. 이는 유지보수 작업 중 일반 사용자의 접근을 차단하기 위한 정상적인 운영 행위이나, 작업 완료 후 RESTRICTED MODE를 해제하는 것을 잊어버리면 모든 일반 사용자가 접속 불가 상태에 빠지게 됩니다.
2. 예기치 않은 시스템 복구 과정에서의 자동 RESTRICTED MODE 전환
일부 Oracle 패치 적용 도구(예: OPatch) 또는 자동화된 스크립트가 작업 수행 중 데이터베이스를 RESTRICTED MODE로 전환한 후, 오류나 비정상 종료로 인해 모드 해제 없이 작업이 중단된 경우입니다. 운영팀이 인지하지 못한 상태에서 RESTRICTED MODE가 유지되면, 다음 날 출근 후 전체 사용자가 접속 불가 상태에 처하는 심각한 장애로 이어질 수 있습니다.
3. 일반 사용자에게 RESTRICTED SESSION 권한 미부여 상태에서 접속 시도
데이터베이스가 RESTRICTED MODE일 때 특정 업무 담당자만 임시로 접속이 필요한 경우, 해당 계정에 RESTRICTED SESSION 권한이 부여되지 않은 상태라면 에러가 발생합니다. 특히 RESTRICTED SESSION 권한은 기본적으로 DBA 롤을 가진 사용자에게만 부여되므로, 일반 사용자 계정에는 별도의 GRANT 작업이 필요합니다.
해결 방법
방법 1: RESTRICTED MODE 해제 (가장 일반적인 해결책)
현재 데이터베이스의 RESTRICTED SESSION 상태를 확인하고 해제합니다.
-- 현재 RESTRICTED SESSION 상태 확인
SELECT LOGINS, RESTRICTED
FROM V$INSTANCE;
-- RESTRICTED MODE 해제 (SYSDBA 권한 필요)
ALTER SYSTEM DISABLE RESTRICTED SESSION;
-- 해제 후 상태 재확인
SELECT LOGINS, RESTRICTED
FROM V$INSTANCE;
-- LOGINS: ALLOWED, RESTRICTED: NO 로 확인되어야 정상
방법 2: 특정 사용자에게 RESTRICTED SESSION 권한 임시 부여
유지보수 중에도 특정 사용자의 접속이 반드시 필요한 경우, 해당 계정에 권한을 부여합니다.
-- 특정 사용자에게 RESTRICTED SESSION 권한 부여
GRANT RESTRICTED SESSION TO 업무담당자계정;
-- 권한 부여 확인
SELECT GRANTEE, PRIVILEGE
FROM DBA_SYS_PRIVS
WHERE PRIVILEGE = 'RESTRICTED SESSION';
-- 유지보수 완료 후 권한 회수
REVOKE RESTRICTED SESSION FROM 업무담당자계정;
방법 3: SYSDBA로 접속하여 상태 점검 및 해제
일반 접속이 불가한 상황에서 SYSDBA 권한으로 접속하여 처리합니다.
-- OS 인증을 통한 SYSDBA 접속 (서버 직접 접속)
-- sqlplus / as sysdba
-- 현재 세션 및 모드 확인
SELECT SID, SERIAL#, USERNAME, STATUS, SCHEMANAME
FROM V$SESSION
WHERE TYPE = 'USER';
-- V$INSTANCE에서 RESTRICTED 상태 확인
SELECT INSTANCE_NAME, STATUS, LOGINS, RESTRICTED, DATABASE_STATUS
FROM V$INSTANCE;
-- RESTRICTED MODE 비활성화
ALTER SYSTEM DISABLE RESTRICTED SESSION;
-- 적용 확인
SELECT LOGINS, RESTRICTED FROM V$INSTANCE;
방법 4: 데이터베이스 재시작 없이 RESTRICTED MODE로 전환/해제
-- RESTRICTED MODE 활성화 (유지보수 시작 전)
ALTER SYSTEM ENABLE RESTRICTED SESSION;
-- 현재 접속된 일반 사용자 세션 강제 종료 (선택)
-- 접속 중인 일반 유저 세션 목록 조회
SELECT SID, SERIAL#, USERNAME, STATUS
FROM V$SESSION
WHERE USERNAME IS NOT NULL
AND USERNAME NOT IN ('SYS', 'SYSTEM')
AND TYPE = 'USER';
-- 특정 세션 종료
ALTER SYSTEM KILL SESSION '세션SID,시리얼번호' IMMEDIATE;
-- 유지보수 완료 후 RESTRICTED MODE 해제
ALTER SYSTEM DISABLE RESTRICTED SESSION;
예방 방법
1. 유지보수 절차서에 RESTRICTED MODE 해제 단계를 필수 체크리스트로 포함
모든 유지보수 작업의 종료 절차에 ALTER SYSTEM DISABLE RESTRICTED SESSION 명령 실행과 V$INSTANCE 조회를 통한 상태 확인을 필수 체크리스트 항목으로 포함시켜야 합니다. 아울러 유지보수 작업 후 자동으로 RESTRICTED MODE 여부를 모니터링하는 쉘 스크립트나 Oracle Enterprise Manager 알람을 설정하여, 비정상적인 상태가 지속될 경우 DBA에게 즉시 알림이 가도록 구성하는 것이 바람직합니다.
-- 모니터링 쿼리 예시 (정기 점검 스크립트에 포함)
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS CHECK_TIME,
INSTANCE_NAME,
STATUS,
LOGINS,
RESTRICTED
FROM V$INSTANCE
WHERE RESTRICTED = 'YES'; -- YES이면 알람 발송
2. RESTRICTED SESSION 권한 관리 정책 수립 및 정기 감사
RESTRICTED SESSION 권한은 최소 권한 원칙(Principle of Least Privilege)에 따라 반드시 필요한 DBA 계정에만 부여하고, 정기적으로 권한 현황을 감사해야 합니다. 또한, 권한 부여/회수 이력을 AUDIT 기능을 통해 기록하여 불필요한 권한 확산을 방지하는 통제 절차를 마련하세요.
-- RESTRICTED SESSION 권한 보유 계정 정기 감사
SELECT GRANTEE, PRIVILEGE, ADMIN_OPTION, COMMON, INHERITED
FROM DBA_SYS_PRIVS
WHERE PRIVILEGE = 'RESTRICTED SESSION'
ORDER BY GRANTEE;
-- 감사(AUDIT) 설정 예시
AUDIT RESTRICTED SESSION BY ACCESS;
관련 에러
- ORA-01033:
ORACLE initialization or shutdown in progress— 데이터베이스가 시작 또는 종료 중인 상태로, RESTRICTED MODE와 유사하게 일반 사용자의 접속이 불가한 상황에서 발생합니다. - ORA-01034:
ORACLE not available— 데이터베이스 인스턴스 자체가 기동되지 않은 상태에서 접속을 시도할 때 발생하며, ORA-01035와 함께 접속 불가 상황에서 자주 마주치는 에러입니다. - ORA-01089:
immediate shutdown or close in progress— 데이터베이스가 즉시 종료 진행 중일 때 발생하며, 유지보수 작업 흐름에서 ORA-01035 전후로 나타날 수 있습니다. - ORA-00257:
archiver error— 아카이브 로그 공간 부족으로 인해 DBA가 RESTRICTED MODE를 활성화하는 원인이 되기도 하며, 간접적으로 ORA-01035 발생과 연관됩니다.
주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.
본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.