🛠️ 26편. 사용자 권한 및 역할(Role) 관리
Oracle 데이터베이스는 사용자 계정과 권한 체계를 기반으로 접근 통제와 보안을 수행합니다.
이번 글에서는 사용자 계정 생성부터 시스템/객체 권한 부여, 역할(Role) 활용까지 실무 보안 설계에 필요한 내용을 정리합니다.
👤 1. 사용자 계정 생성
-- 사용자 생성
CREATE USER test_user IDENTIFIED BY test123
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA 10M ON users;
-- 접속 권한 부여
GRANT CREATE SESSION TO test_user;
- CREATE SESSION: 로그인 가능하게 해주는 최소 권한
- QUOTA: 테이블스페이스 사용량 제한
🔑 2. 시스템 권한(System Privileges)
데이터베이스 레벨에서 객체를 생성하거나 변경할 수 있는 권한입니다.
-- 테이블 생성, 뷰 조회 권한 부여
GRANT CREATE TABLE, CREATE VIEW TO test_user;
-- 모든 테이블 조회 권한 (주의!)
GRANT SELECT ANY TABLE TO test_user;
SELECT ANY TABLE
은 보안상 주의해야 할 권한입니다.
📄 3. 객체 권한(Object Privileges)
특정 테이블, 뷰, 프로시저에 대해 SELECT, INSERT, EXECUTE 등의 권한을 개별적으로 부여합니다.
-- SCOTT의 EMP 테이블을 조회 가능하도록 권한 부여
GRANT SELECT ON scott.emp TO test_user;
-- 함수 실행 권한 부여
GRANT EXECUTE ON scott.get_salary TO test_user;
📦 4. 역할(Role) 관리
Role은 여러 권한을 하나로 묶어 일괄적으로 부여 및 관리할 수 있게 해줍니다.
-- ① Role 생성
CREATE ROLE hr_readonly;
-- ② 권한 추가
GRANT SELECT ON emp TO hr_readonly;
GRANT SELECT ON dept TO hr_readonly;
-- ③ 사용자에게 Role 부여
GRANT hr_readonly TO test_user;
→ 변경 시 Role만 수정하면 되어 **관리 효율성↑**
⚠️ 5. 권한 회수
-- 시스템 권한 회수
REVOKE CREATE TABLE FROM test_user;
-- 객체 권한 회수
REVOKE SELECT ON emp FROM test_user;
-- 역할 회수
REVOKE hr_readonly FROM test_user;
🧠 실무 팁
- 운영 계정은 최소 권한 원칙(Least Privilege)으로 구성
- 객체 권한은 가급적 Role에 묶어서 관리
- 계정 잠금:
ALTER USER test_user ACCOUNT LOCK;
- 비밀번호 변경:
ALTER USER test_user IDENTIFIED BY newpass;
📝 마무리
이번 글에서는 Oracle 사용자 계정 생성, 권한 부여/회수, Role을 이용한 권한 관리 전략을 소개했습니다.
다음 글에서는 Alert Log와 Trace 파일 분석
'database > oracle' 카테고리의 다른 글
🛠️ 27편. Alert Log 및 Trace 파일 분석 (0) | 2025.05.07 |
---|---|
🛠️ 25편. Oracle Data Pump 백업 및 복구 (0) | 2025.05.07 |
🧱 24편. 패키지(PACKAGE)와 재사용 전략 (0) | 2025.05.07 |
🧱 23편. 예외 처리, 변수/레코드 타입, 커스텀 구조 (0) | 2025.05.07 |
🧱 22편. 프로시저, 함수, 트리거 만들기 (1) | 2025.05.07 |
댓글