SAP BC 수시업무 중 가장 많은 부분을 차지하는게 모니터링과 더불어 권한 관리다.
권한 관리만 전문으로 하는 BC 도 있을 만큼, 권한 관리에 대해서는 신경써야 할 부분이 많다.
여기서는 권한 개념에 대해서 간략하게 서술하고,
예시로 특정 티코드에 대한 조회전용 역할(Role) 생성에 대해서 서술한다.
권한 관리에 관한 부분은 아래 글을 참조하기 바란다.
- 작성 예정
아래 글에서는 역할과 권한에 대해서 단어 구분이 명확하지 않은데, "권한 오브젝트"를 제외하고는 권한=역할 이라고 보면 된다.
SAP 에서의 트랜잭션 및 프로그램 실행, 엑세스, 액션 등등의 모든 활동은 SAP 시스템에서 부여하는 권한이 있어야 가능하다.
각 오브젝트들은 모두 권한 객체로 보호되기 때문이며, 보통 사용자 계정의 활동 및 책임에 따라 정의한다.
다음은 SAP 에서 제공하는 권한 부여 구성 요소와 그 관계들에 대한 이미지이다.
출처 : SAP Help Portal - ABAP Authorization Concept
권한 오브젝트(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
신규 역할 부여는 보통 다음과 같은 순서로 이루어진다.
(생성) 설계에 따른 역할 생성
설계 사양에 따라 역할의 티코드 부여 및 목적에 따른 권한 오브젝트 Activity 설정
역할 생성과 동시에 프로파일도 같이 생성해야 한다.
(부여) 생성된 역할의 사용자 부여
요구되는 사용자에게 생성된 역할 부여
역할을 부여하고, 사용자 비교를 수행하면 시스템은 자동적으로 해당 역할을 가진 사용자에게 프로파일을 부여한다.
각 권한 오브젝트별로 공통으로 사용하는 필드가 있다.
이러한 필드에 대해서, 한번에 공통 설정하게 해주는 기능이 조직 레벨 정의다.
대표적으로 많이 사용되는 조직 레벨 값은 다음이 있으며, 이외에도 많은 값들이 있다.
예를 들어 역할의 조직 레벨 Company Code 값을 AAA1 로 지정해두면, 해당 역할 하위 권한 오브젝트의 모든 Compnay Code 값은 AAA1 으로 자동 지정된다.
이러한 설정은 역할의 유지보수를 쉽게 해주니 반드시 조직 레벨 정의를 활용하는걸 추천한다.
Tcode SUPO 에서 역할별 조직레벨 설정을 확인할 수 있다.
다수의 역할을 대상으로 특정 조건을 확인할 때, 테이블을 통해서 조회하면 편하다.
다음은 권한/역할에 관련된 테이블 리스트이다.
- 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 로 백업
이제 여러 예시를 통해, 간단한 조회전용 역할을 생성하는 방법에 대해서 기록한다.
역할의 액션(생성/수정/조회) 의 조정은 Activity 로 가능하다.
또는 Tcode 별로 액션이 생성/수정/조회가 나누어진 경우도 있다. (Tcode MM01 자재 생성, MM02 자재 변경, MM03 자재 조회 같은 경우)
각 Activity 는 Tcode SU21 에서 권한 오브젝트별로 Obj. Documentation 을 통해 상세하게 확인할 수 있다.
기본적으로 Activity 01 생성, 02 수정, 03 조회
프로파일은 역할의 권한 오브젝트 수정이 있을때마다, 재생성 해줘야 한다.
개별로 생성할 수도 있고, PFCG -> Utilites -> Mass Genertaion 을 통해 일괄 재생성할 수 있다.
(이 외, PFCG - Utilites 에는 다양한 기능들이 있다.)
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 실시)
-> 부여 완료
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 실시)
-> 부여 완료
특정 테이블 조회권한 부여 (예시 : 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 실시)
-> 부여 완료
모든 번호 범위 오브젝트에 대해서 조회/수정권한 부여
(여기서는 단순수정과 함께 번호값 초기화, 오브젝트 유지보수 등등의 권한도 추가)
역할 ZROLE_NUMBER_CHANGE 생성 (Single Role)
-> Description 입력
-> 하단 매뉴탭 Menu
-> Add Transaction 에서 SNRO
티코드 권한 추가
Tcode
SNUM
과SNRO
는 동일하므로,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 실시)
-> 부여 완료