
1. Oracle USER란 무엇인가?
USER(사용자)는 Oracle Database 내에서 객체를 소유하고 SQL 작업을 수행할 수 있는 논리적 계정입니다. 사용자 계정은 스키마(schema)와 동의어로 사용되며, 테이블, 뷰, 인덱스 등의 모든 객체를 생성하고 관리하는 주체입니다.
2. 사용자 계정 생성 목적
- 사용자별로 객체를 분리하여 보안성과 관리 편의성 확보
- 다중 애플리케이션 또는 프로젝트 환경 분리
- 접근 제어와 권한 분리를 통해 보안 강화
3. 사용자 생성 기본 문법
CREATE USER 사용자명 IDENTIFIED BY 비밀번호;
예시:
CREATE USER dev_user IDENTIFIED BY devpass123;
이 명령은 dev_user라는 이름의 계정을 생성하고 비밀번호를 설정합니다.
4. 사용자에게 권한 부여
사용자는 기본적으로 아무 작업도 할 수 없기 때문에 권한(Privileges)을 부여해야 합니다.
GRANT CREATE SESSION TO dev_user;
GRANT CREATE TABLE TO dev_user;
GRANT UNLIMITED TABLESPACE TO dev_user;
이로써 해당 사용자는 데이터베이스에 접속하고, 테이블을 생성하며, 테이블스페이스 사용에 제한을 받지 않게 됩니다.
5. 사용자 계정 생성과 권한 부여 통합 예제
CREATE USER hr_user IDENTIFIED BY hr123;
GRANT CONNECT, RESOURCE TO hr_user;
GRANT UNLIMITED TABLESPACE TO hr_user;
CONNECT과 RESOURCE는 Oracle에서 미리 정의된 역할(Role)입니다.
6. 사용자 목록 조회
SELECT username, account_status FROM dba_users;
DBA_USERS 뷰를 통해 현재 데이터베이스 내 모든 사용자 계정 정보를 확인할 수 있습니다.
7. 비밀번호 변경 및 계정 잠금 해제
ALTER USER hr_user IDENTIFIED BY newpassword123;
ALTER USER hr_user ACCOUNT UNLOCK;
관리자가 사용자 계정의 비밀번호를 변경하거나 잠금 해제를 수행할 수 있습니다.
8. 사용자 삭제
DROP USER hr_user CASCADE;
CASCADE 옵션을 사용하면 해당 사용자의 모든 객체를 함께 삭제합니다.
9. 사용자와 스키마의 관계
Oracle에서 USER는 객체의 소유자이며, 해당 사용자의 이름이 곧 스키마의 이름이 됩니다. 예를 들어 dev_user가 만든 테이블 employees는 dev_user.employees로 참조할 수 있습니다.
10. 사용자별 객체 확인
SELECT table_name FROM all_tables WHERE owner = 'DEV_USER';
특정 사용자가 생성한 테이블 목록을 조회할 수 있습니다.
11. 사용자 상태 확인 및 계정 잠금 이유 분석
SELECT username, account_status, lock_date
FROM dba_users
WHERE username = 'HR_USER';
ACCOUNT_STATUS가 LOCKED 또는 EXPIRED 상태인 경우 적절한 조치를 해야 합니다.
12. 사용자 관련 보안 팁
- 기본 ADMIN 계정(sys, system 등) 비밀번호는 반드시 변경
- 사용자마다 최소 권한 원칙 적용 (Least Privilege)
- 비밀번호 정책(Profile)으로 복잡도와 만료 기간 설정
- 계정 활동 감사(AUDIT) 설정으로 이상 징후 탐지
13. 사용자와 관련된 시스템 뷰
DBA_USERS: 모든 사용자 정보ALL_USERS: 접근 가능한 사용자 목록USER_USERS: 현재 접속한 사용자 정보DBA_TS_QUOTAS: 사용자별 테이블스페이스 사용량
14. 결론
Oracle USER 계정은 단순한 로그인 용도를 넘어서, 데이터베이스 리소스를 소유하고 관리하는 핵심 단위입니다. 계정 생성부터 권한 제어, 보안 정책까지 체계적으로 관리하면 보다 안전하고 유연한 데이터베이스 운영이 가능해집니다. 특히, 실무에서는 사용자 관리 자동화 스크립트를 구성해 관리 효율을 높이는 것이 바람직합니다.
출처
- Oracle 공식 문서: https://docs.oracle.com/en/database/
- Oracle Database Security Guide
- 실무 오라클 계정 관리와 보안 - 이현석 저
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] TABLESPACE() 개념부터 생성·관리까지 완벽 가이드 (0) | 2025.06.09 |
|---|---|
| [ORACLE] GRANT() 권한 부여 문법과 실무 예제 완벽 정리 (0) | 2025.06.09 |
| [ORACLE] INDEX() 성능 향상을 위한 인덱스 종류와 예제 완전 정복 (0) | 2025.06.09 |
| [ORACLE] LOCK TABLE() 문법부터 예제까지 한눈에 이해하기 (0) | 2025.06.09 |
| [ORACLE] SYNONYM() 시노님 개념부터 생성 예제까지 완전 정복 (0) | 2025.06.09 |