해당 포스트는 ‘ABAP에서 사용자 잠금 이력’ 을 가져오는 방법에 대해서 정리한다.
SAP 에선 T-CODE SU01을 통해 SAP 사용자의 계정을 잠금/잠금 해제 할 수 있다. 그리고 해당 작업에 대한 변경 이력은 먼저 사용자 계정 정보를 조회 한 후 상단 메뉴의 정보(I) → 사용자 변경 문서(U) 에 접속해 확인이 가능하다.
해당 화면에 접속하게 되면 여러 검색 조건으로 변경 이력을 조회 할 수 있는데 하단의 선택 기준의 관리자 잠금 설정/관리자 잠금 릴리스를 선택하면 만약 계정이 잠기거나 해제 되었을 때의 이력이 남게 된다.
나는 최근 회사의 개발 건으로 해당 이력 정보를 가져와야 하는 이슈가 있었는데 ChatGPT와 구글에선 관련 테이블로 CDHDR, CDPOS 이 두 테이블을 이용하라 했었지만 정보를 찾을 수 없었다. 이에 다른 방법으로 해당 정보를 가져와야 하는 일이 발생 하여 정리하게 되었다.
관련 글
ABAP 날짜 계산 함수 ‘RP_CALC_DATE_IN_INTERVAL’ – Min IT 찍먹노트 (mntkim.com)
SU01: SAP에서 새 사용자를 만드는 방법 – guru99
ABAP 기초 포스팅
변수 선언과 데이터 타입
Structure (구조체) 타입 변수 선언
TYPES 구문을 통한 타입 정의
Internal Table 개념, 사용법 정리
반복문 LOOP, WHILE, DO
콘텐츠
ABAP에서 사용자 잠금 이력 가져올 시 참고할 T-CODE
SU01 이용
SU01은 SAP 시스템에서 사용자 관리를 위한 핵심 트랜잭션 코드 (T-Code) 중 하나다. 이 트랜잭션은 SAP 시스템의 사용자 계정을 생성하고, 관리하며, 수정하는 데 사용된다. SU01의 주요 기능과 사용 방법은 다음과 같다.
주요 기능
- 사용자 계정 생성: 새로운 사용자 계정을 생성하고, 사용자 이름, 비밀번호, 사용자 정보(예: 이름, 이메일 주소) 등을 설정할 수 있다.
- 사용자 데이터 수정: 기존 사용자 계정의 정보를 수정할 수 있다. 이에는 사용자의 개인 정보, 로그인 데이터, 비밀번호 등이 포함된다.
- 권한 및 역할 할당: 사용자에게 필요한 권한과 역할을 할당하고 관리할 수 있다. 이를 통해 사용자가 시스템 내에서 수행할 수 있는 작업의 범위를 정의한다.
- 잠금/잠금 해제: 사용자 계정을 잠그거나 잠금 해제할 수 있다. 이는 보안 관리나 사용자 관리 정책의 일환으로 사용된다.
- 사용자 정보 조회: 특정 사용자 계정에 대한 상세 정보를 조회할 수 있다.
사용 방법
- 트랜잭션 코드 실행: SAP Easy Access 화면에서 SU01을 입력하고 실행.
- 사용자 계정 관리: 화면에 나타나는 다양한 탭을 통해 사용자 계정을 생성, 수정, 관리할 수 있다.
- 사용자 데이터: 사용자의 기본 정보를 입력하고 수정.
- 역할: 사용자에게 할당할 역할을 지정.
- 권한: 사용자의 권한을 관리.
- 로그온 데이터: 사용자의 로그인 정보와 비밀번호 정책을 설정.
- 저장 및 확인: 변경 사항을 저장하고, 필요에 따라 사용자 계정의 정보를 검토.
주의 사항
- SU01 트랜잭션에는 시스템 내 사용자 계정과 관련된 중요한 정보가 포함되어 있으므로, 이를 사용할 때는 적절한 보안 조치와 규정 준수가 필요하다.
- 일반적으로 SU01 트랜잭션의 사용은 시스템 관리자나 사용자 관리 역할을 가진 사용자에게 제한된다.
SU01은 SAP 시스템에서 사용자 관리의 핵심적인 부분을 담당하며, 시스템의 보안 및 운영 관리에 중요한 역할을 한다.
ABAP에서 사용자 잠금 이력 가져오는 방법
ABAP Function ‘SUSR_CHANGE_DOC_USER’
‘SUSR_CHANGE_DOC_USER’ 는 ABAP Function 이다. 이는 ABAP에서 사용자 잠금 이력 을 가져올 뿐 아니라 계정 생성, 수정, 삭제 등의 이력을 가져와 이용할 수 있다. 예제 코드는 다음과 같다.
DATA: LT_CDRED_OUTPUT TYPE SUSR_T_USRCD,
LT_USERNAME TYPE CDUSERNAME_RANGE_TAB,
LS_USERNAME TYPE CDUSERNAME_RANGE.
LS_USERNAME-SIGN = 'I'.
LS_USERNAME-OPTION = 'EQ'.
LS_USERNAME-LOW = '계정 ID'
APPEND LS_USERNAME TO LT_USERNAME.
CALL FUNCTION 'SUSR_CHANGE_DOC_USERS'
EXPLORTING
IT_USERNAME = LT_USERNAME
IV_TDATE = SY-DATUM "원하는 기준 일자를 넣으면 된다.
IV_TTIME = '235959' "원하는 기준 시간을 넣으면 된다.
IV_ALOCK_S = 'X' "X 시 관리자가 수동으로 잠근 이력을 가져온다.
IV_ALOCK_D = 'X' "X 시 시스템에서 자동으로 잠근 이력을 가져온다. (예: 로그인 시도 횟수 초과)
IV_VIEW = 'C'
IMPORTING
ET_CDRED_OUTPUT = LT_CDRED_OUTPUT. "데이터가 남기는 Internal Table
해당 코드를 작성하고 디버깅 해 보면 LT_CDRED_OUTPUT 에 잠금 관련 계정 변경 사항 이력 값이 담긴다.
만약 여러 계정에 대한 값을 가져오고 싶다면 LT_USERNAME 에 여러 라인을 추가하면 된다.
ABAP에서 사용자 잠금 이력 가져올 경우 주의 사항
SUSR_CHANGE_DOC_USERS 함수 모듈을 SAP 시스템에서 사용할 때에는 여러 주의 사항을 고려해야 한다.
이 함수 모듈은 사용자 계정과 관련된 변경 사항을 추적하고 문서화하는 데 사용되므로, 데이터의 민감성과 시스템의 보안 및 규정 준수 요구 사항을 엄격히 고려해야 한다.
주의사항
- 보안 및 권한 관리: SUSR_CHANGE_DOC_USERS는 민감한 사용자 데이터를 처리하기 때문에, 이 함수 모듈에 접근 및 사용 권한을 엄격히 관리해야 한다. 적절한 권한이 없는 사용자가 이 데이터에 접근하지 못하도록 해야 한다.
- 성능 영향 고려: 대규모 사용자 데이터베이스를 조회하는 경우 시스템의 성능에 영향을 줄 수 있으므로, 함수 모듈의 사용을 최적화하고 필요한 경우 배치 처리를 고려해야 한다.
- 데이터 무결성: 사용자 데이터의 변경 이력을 추적할 때는 데이터의 정확성과 무결성을 유지하는 것이 중요하다. 잘못된 데이터나 오해의 소지가 있는 정보를 기반으로 한 결정은 부정적인 결과를 초래할 수 있다.
- 규정 준수 및 감사: 조직의 내부 정책 및 외부 규정 준수 요구 사항에 따라 사용자 데이터의 처리 및 저장 방식을 관리해야 한다. 또한, 감사 트레일을 유지하여 필요 시 검토할 수 있어야 한다.
- 데이터의 적절한 사용: 수집된 사용자 데이터는 조직의 정책 및 윤리적 가이드라인에 따라 적절히 사용되어야 한다. 사용자의 개인정보 보호를 위한 필요한 모든 조치를 취해야 한다.
- 오류 처리 및 로깅: 함수 모듈을 사용하는 동안 발생할 수 있는 오류를 적절하게 처리하고 로그를 기록해야 한다. 이는 문제 해결과 시스템 유지 관리에 중요하다.
결론
SUSR_CHANGE_DOC_USERS 함수 모듈은 SAP 시스템 내에서 중요한 사용자 관련 변경 사항을 추적하는 데 유용한 도구이지만, 이를 사용할 때는 보안, 규정 준수, 데이터 무결성, 그리고 시스템의 성능과 안정성을 고려해야 한다.