SAP 권한 개념 및 조회전용 역할 생성__SAP Authorization Concept and View-Only Role Creation

감귤은탱귤·2024년 1월 22일
1

SAP BC - 기본 개념

목록 보기
5/20
post-thumbnail

SAP BC 수시업무 중 가장 많은 부분을 차지하는게 모니터링과 더불어 권한 관리다.

권한 관리만 전문으로 하는 BC 도 있을 만큼, 권한 관리에 대해서는 신경써야 할 부분이 많다.

여기서는 권한 개념에 대해서 간략하게 서술하고,
예시로 특정 티코드에 대한 조회전용 역할(Role) 생성에 대해서 서술한다.

권한 관리에 관한 부분은 아래 글을 참조하기 바란다.

  • 작성 예정

아래 글에서는 역할과 권한에 대해서 단어 구분이 명확하지 않은데, "권한 오브젝트"를 제외하고는 권한=역할 이라고 보면 된다.



1. 권한 개념

SAP 에서의 트랜잭션 및 프로그램 실행, 엑세스, 액션 등등의 모든 활동은 SAP 시스템에서 부여하는 권한이 있어야 가능하다.
각 오브젝트들은 모두 권한 객체로 보호되기 때문이며, 보통 사용자 계정의 활동 및 책임에 따라 정의한다.

다음은 SAP 에서 제공하는 권한 부여 구성 요소와 그 관계들에 대한 이미지이다.

출처 : SAP Help Portal - ABAP Authorization Concept

1-1. 단어 설명

  • 권한 오브젝트(Authorization Object) :
    권한 제어의 가장 작은 단위.
    권한 필드(Authorization Field) 에 따라 사용자의 액션이 제어되며, 각 권한 오브젝트마다 가지고 있는 필드가 다르다.
    대표적으로, 권한 필드의 Activity(ACTVT) 값에 따라 생성/수정/조회와 같은 기본적인 액션이 구분된다.

    Tcode : SU21, SU22, SU24, SU20

  • 역할(Role) :
    권한 오브젝트들의 집합. (간단히 Tcode 들의 집합으로 이해해도 무방하다.)
    작게는 하나의 업무 단위, 크게는 업무 프로세스에 따라 정의하며, 특수한 목적을 가지고도 생성할 수 있다.
    역할은 복합 롤(Composite Role) 과 단일 롤(Single Role) 두개로 구분되는데, 여기서는 단일 롤에 초점을 맞춰 설명한다.

    Tcode : PFCG

  • 프로파일(Profile) :
    권한의 실체화 개념, 역할이 권한 오브젝트의 집합 정의였다면, 프로파일은 역할의 실체화 구현이다.
    즉, 역할이 부여되어있어도 프로파일이 없다면, 시스템 상에서 권한은 부여되지 않은것이다. (역할 부여에 큰 문제가 없다면, 프로파일은 시스템적으로 자동으로 부여된다.)

    직관적으로 이해가 어렵다면, SAP_ALL 을 생각해보면 된다.
    SAP_ALL 은 Role 이 아닌 Profile 이며, 모든 권한을 가지게 된다.
    즉, 실제 권한 객체는 Profile 이다.

    Tcode : SU02, SU25

1-2. 권한 부여

신규 역할 부여는 보통 다음과 같은 순서로 이루어진다.

(1) 설계 - 업무 단위, 프로세스 또는 사용자 책임에 따른 역할 설계

보통 해당 업무에 필요한 Tcode 와 목적, 책임(담당, 관리) 에 따른 액션을 조정한다.
초기 시스템이라면, SAP 역할 관리 모델에 따른 기본 역할도 필요하다.

◾ Common Level : 일반적으로 사용되는 Tcode 와 그에 대한 엑세스는 시스템의 모든 사용자에게 부여된다. 보통 EndUser 단 공통 권한을 뜻한다.
대표적으로 Tcode SU53, SU3 / 인쇄(Spool), 도움말 확인, ALV 레이아웃 또는 관리툴, GUI, 백그라운드 잡 수행 등등의 권한을 부여한다.

(2) 생성 - 설계에 따른 역할 생성

설계 사양에 따라 역할의 티코드 부여 및 목적에 따른 권한 오브젝트 Activity 설정.
역할 생성과 동시에 프로파일도 같이 생성해야 한다.

(3) 부여 - 생성된 역할의 사용자 부여

요구되는 사용자에게 생성된 역할 부여.
역할을 부여하고, 사용자 비교를 수행하면 시스템은 자동적으로 해당 역할을 가진 사용자에게 프로파일을 부여한다.

1-3. 조직 레벨(Organizational levels)

각 권한 오브젝트별로 공통으로 사용하는 필드가 있다.
이러한 필드에 대해서, 한번에 공통 설정하게 해주는 기능이 조직 레벨 정의다.

대표적으로 많이 사용되는 조직 레벨 값은 다음이 있으며, 이외에도 많은 값들이 있다.

  • Company Code ($BUKRS)
  • Controlling Area ($KOKRS)
  • Plant ($WERKS)
  • Sales Organization ($VKORG)

예를 들어 역할의 조직 레벨 Company Code 값을 AAA1 로 지정해두면, 해당 역할 하위 권한 오브젝트의 모든 Compnay Code 값은 AAA1 으로 자동 지정된다.

이러한 설정은 역할의 유지보수를 쉽게 해주니 반드시 조직 레벨 정의를 활용하는걸 추천한다.

Tcode SUPO 에서 역할별 조직레벨 설정을 확인할 수 있다.

1-4. 권한 관련 테이블

다수의 역할을 대상으로 특정 조건을 확인할 때, 테이블을 통해서 조회하면 편하다.

다음은 권한/역할에 관련된 테이블 리스트이다.

  • AGR_DEFINE : 역할 별 생성일, 변경일, 설명 테이블
  • AGR_PROF : 역할 별 생성된 프로파일 테이블
  • AGR_TEXTS : 역할 별 설명(Desc) 테이블
  • AGR_TCODES : 역할 별, Menu 에 등록된 티코드 리스트 테이블 (S_TCODE 에 직접 등록된 티코드는 나오지 않음)
  • AGR_USERS : 역할 별 부여된 유저 테이블
  • AGR_1251 : 역할 별 권한 오브젝트 테이블
  • AGR_1252 : 역할 별 조직 레벨 정의 테이블


2. 사용자 및 역할 관리 구성 설정

  • SAP Notes 440231 - SU25 | FAQ: Upgrade postprocessing for Profile Generator
  • SAP Notes 727536 - FAQ | Use of customer-specific organizational levels in PFCG
  • SAP Notes 1539556 - FAQ | Administration of authorization default values
  • SAP Notes 3251663 - Error message "First call Transaction SU25 and fill Profile Generator tables" when editing authorizations in PFCG

초기 SAP 시스템 설치 후, 각 운영환경에 맞게, 초기에 Profile Generator 를 통해 Customer Tables 의 초기 채우기(Initial Fill) 가 필요하다.

Tcode : SU25

-> Installing the Profile Generator
--> Initial fill of customer tables was performed 확인

-> Postprocess the Settings After Upgrading to a Higher Release
--> Automatic Comparison with SU22 Data (2a) 수행(필수)
--> Modification Comparison with SU22 Data (2b) 수행(필수)
--> Search for Obsolete Applications (2d) - 쓸모없는 어플리케이션 검색
--> Roles to Be Checked (2c) - 역할 조정 및 점검

-> Transport Intf.
--> Transport the Customer Tables (3) - 설정된 Customer Tables 을 다른 시스템으로 전송 또는 현재 설정을 CTS 로 백업



3. 조회 전용 역할 생성

이제 여러 예시를 통해, 간단한 조회전용 역할을 생성하는 방법에 대해서 기록한다.

역할의 액션(생성/수정/조회) 의 조정은 Activity 로 가능하다.
또는 Tcode 별로 액션이 생성/수정/조회가 나누어진 경우도 있다. (Tcode MM01 자재 생성, MM02 자재 변경, MM03 자재 조회 같은 경우)

각 Activity 는 Tcode SU21 에서 권한 오브젝트별로 Obj. Documentation 을 통해 상세하게 확인할 수 있다.

기본적으로 Activity 01 생성, 02 수정, 03 조회

프로파일은 역할의 권한 오브젝트 수정이 있을때마다, 재생성 해줘야 한다.
개별로 생성할 수도 있고, PFCG -> Utilites -> Mass Genertaion 을 통해 일괄 재생성할 수 있다.
(이 외, PFCG - Utilites 에는 다양한 기능들이 있다.)


3-1. 케이스1 - 특정 패키지 조회 역할

설계)

ABAP Package ZMM_TEMP 의 모든 오브젝트에 대한 조회 권한 부여

생성)

역할 ZROLE_ZMM_TEMP_DISPLAY 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 SE80(ABAP Object Navigator) 티코드 권한 추가

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data
-> 권한 오브젝트 S_DEVELOP 트리 열기
-> DEVCLASS : ZMM_TEMP
-> OBJTYPE : *
-> OBJNAME : *
-> P_GROUP : *
-> ACTVT : Display(03)

만약 Change Authorization Data 로 들어갔는데, 권한 오브젝트가 보이지 않는다면, Tcode SU25 에서 Profile Generator Installation 을 수행해야 한다.

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 역할 생성 완료

부여)

역할 ZROLE_ZMM_TEMP_DISPLAY 조회
-> 하단 메뉴탭 User
-> 역할을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료

3-2. 케이스2 - PFCG 조회 역할

설계)

Tcode PFCG 조회권한 부여

생성)

역할 ZROLE_PFCG_DISPLAY 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 PFCG(Role Maintenance) 티코드 권한 추가

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data
-> 다음 권한 오브젝트를 제외한 나머지 권한 오브젝트 삭제
-> S_USER_AGR, S_USER_AUT, S_USER_GRP, S_USER_PRO, S_USER_SAS
-> 위 5개 권한 오브젝트 ACTVT Diplay(03), 그 외 필드값 * 설정

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 역할 생성 완료

부여)

역할 ZROLE_PFCG_DISPLAY 조회
-> 하단 메뉴탭 User
-> 역할을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료

3-3. 케이스3 - 특정 테이블 조회 역할

설계)

특정 테이블 조회권한 부여 (예시 : SFLIGHT 테이블)

SFLIGHT 테이블은 SAP 교육용 스탠다드 테이블이다.

생성)

역할 ZROLE_TABLE_DISPLAY 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 SE16 티코드 권한 추가

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data
-> 권한 오브젝트 S_TABU_DIS 삭제
-> 권한 오브젝트 S_TABU_NAM 트리 열기
-> ACTVT : Display(03)
-> TABLE : SFLIGHT

위 예시의 응용으로 CBO 모든 테이블 조회권한 은 TABLE 값에 Z* 를 입력하면 된다.

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 역할 생성 완료

부여)

역할 ZROLE_TABLE_DISPLAY 조회
-> 하단 메뉴탭 User
-> 역할을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료

3-4. 케이스4 - 번호 범위(Number Range) 조회/수정 역할

설계)

모든 번호 범위 오브젝트에 대해서 조회/수정권한 부여
(여기서는 단순수정과 함께 번호값 초기화, 오브젝트 유지보수 등등의 권한도 추가)

생성)

역할 ZROLE_NUMBER_CHANGE 생성 (Single Role)
-> Description 입력

-> 하단 매뉴탭 Menu
-> Add Transaction 에서 SNRO 티코드 권한 추가

Tcode SNUMSNRO 는 동일하므로, SNUM 을 넣어도 상관없다.

-> 하단 매뉴탭 Authorizations
-> Change Authorization Data

-> 권한 오브젝트 S_ABPLNGVS 트리 열기
-> ABP_LNG_VS : *
-> ACTVT : *

-> 권한 오브젝트 S_DEVELOP 트리 열기
-> DEVCLASS : *
-> OBJTYPE : NROB
-> OBJNAME : *
-> P_GROUP : *
-> ACTVT : Change(02), Display(03)

-> 권한 오브젝트 S_NUMBER 트리 열기
-> NROBJ : *
-> ACTVT : Change(02), Display(03), Change number range status(11), Initialize number levels(13), Maintain number range object(17)

위 예시의 응용으로 특정 번호범위 오브젝트의 조회/수정권한 은 NROBJ 값에 <특정 번호범위 오브젝트> 를 입력하면 된다.

-> 메뉴탭 Generate 클릭 (Shift+F5)
-> Generate
-> 프로파일 이름과 설명 입력 후, Excute
-> 프로파일 및 역할 생성 완료

부여)

역할 ZROLE_NUMBER_CHANGE 조회
-> 하단 메뉴탭 User
-> 역할을 부여할 SAP ID 와 유효기간 설정
-> 상단 매뉴탭 Save
-> User Comparison 확인 (노란불일 시, Comparison 실시)
-> 부여 완료

profile
SAP BC (2019 ~ )

0개의 댓글