1. Oracle UID 함수란?
Oracle 데이터베이스에서 UID
함수는 현재 세션이 사용하는 사용자 계정의 고유 식별자(User ID)를 반환합니다. 반환되는 값은 해당 사용자의 USER_ID
이며, 이는 ALL_USERS
또는 DBA_USERS
뷰에서 확인할 수 있는 값과 일치합니다.
2. 기본 사용법
SELECT UID FROM DUAL;
위 쿼리를 실행하면, 현재 세션의 사용자가 어떤 USER_ID를 가지고 있는지를 확인할 수 있습니다. 결과는 정수형 숫자이며, 예를 들어 101 같은 값이 반환됩니다.
3. UID 함수와 USER 함수 비교
항목 | UID() | USER |
---|---|---|
반환 타입 | NUMBER | VARCHAR2 |
반환 값 | 사용자의 내부 ID | 사용자의 이름 |
사용 목적 | 정수 기반 사용자 식별 | 문자 기반 사용자 확인 |
4. UID 함수 실전 예제
4-1. 사용자별 트리거 제어
CREATE OR REPLACE TRIGGER trg_example
BEFORE INSERT ON employee
BEGIN
IF UID = 101 THEN
RAISE_APPLICATION_ERROR(-20001, '이 사용자는 INSERT 불가합니다.');
END IF;
END;
이 예제는 UID가 101인 사용자가 employee
테이블에 데이터를 삽입하지 못하도록 방지합니다.
4-2. 감사 로그 테이블에 UID 기록
INSERT INTO audit_log(user_id, action_date)
VALUES (UID, SYSDATE);
사용자 ID를 정수형으로 기록함으로써 로그의 정합성과 효율적인 검색이 가능합니다.
5. UID 함수와 SYS_CONTEXT 비교
SYS_CONTEXT('USERENV', 'SESSION_USER')는
사용자명을 반환하는 반면, UID
는 고유 숫자 ID를 제공합니다. 보안, 로깅, 조건 분기 등 실무에서는 두 함수가 함께 쓰이는 경우가 많습니다.
6. UID 확인을 위한 쿼리
SELECT username, user_id
FROM all_users
WHERE user_id = UID;
이 쿼리를 통해 UID 값이 실제 어떤 사용자 계정과 연결되어 있는지 확인할 수 있습니다.
7. UID 활용 팁
- 보안 정책: 특정 사용자 ID 차단
- 감사 로그 기록: 숫자형 사용자 구분
- 프로시저에서 사용자 권한 로직 구현 시 활용
8. 정리
Oracle의 UID 함수는 단순하지만 실무에서 강력한 기능을 제공하는 내장 함수입니다. 사용자 고유 ID를 기반으로 보다 정밀한 보안 제어와 감사 로그 관리가 가능합니다. 특히 USER
나 SYS_CONTEXT
와의 조합을 통해 사용자 행위 추적과 권한 제어에 효과적으로 사용할 수 있습니다.
9. 참고 자료
- Oracle 공식 문서 - https://docs.oracle.com
- Oracle Database SQL Language Reference
- 오라클 개발자 커뮤니티 포럼
'Database' 카테고리의 다른 글
[Oracle] 오라클 LNNVL() 함수 활용 예제 모음과 실무 적용법 (0) | 2025.06.07 |
---|---|
[Oracle] 오라클 USER() 함수 개념 정리 및 실습 가이드 (0) | 2025.06.07 |
[Oracle] 오라클 USERENV() 함수로 접속 정보와 세션 상태 추적하기 (0) | 2025.06.07 |
[Oracle] 오라클 SYS_CONTEXT() 함수로 사용자, 세션, IP 정보 확인하는 방법 (0) | 2025.06.07 |
[Oracle] 오라클 CASE() 함수 사용법과 DECODE, IF-ELSE와의 차이점 비교 (0) | 2025.06.07 |