SAP 查詢系統日誌-追蹤用戶的更改記錄

2020-09-04 SAP權限管理審計專家



1.STAD

提供了跨業務交易的工作負載統計信息,但該事務代碼只能查找最近兩天的記錄,而且只能查詢24hr,超出就報錯。

改進方法

定期在後臺運新STAD。可以長時間從STAD事務中獲取歷史數據。

STAD事務的默認時間段是48小時。我們只能分析該時間範圍內的數據。保存早期STAD報告的另一種方法將在這裡討論。我認為這將有助於管理員分析系統中的各種問題。

STAD程序是RSSTAT26,它在我們運行STAD事務時在後臺運行。

步驟指南

  • 事務SE38並在屏幕中提供程序名稱RSSTAT26。然後執行

  • 然後選擇程序->在後臺執行

  • 然後選擇數據時間,最後單擊周期值。

  • 然後選擇期間。

  • 然後單擊上方屏幕上的保存按鈕以保存後臺作業。
  • 您可以看到成功完成後臺作業的消息。

至此,創建後臺作業完成。

++++++++++++++++++++++++++

下一步是檢查創建了後臺作業的報告。

然後轉到SM37進行後臺作業。

然後單擊圖像上顯示的圖標。

單擊「類型」列下提到的圖標。

然後,您可以查看給定期間的報告。

++++++++++++++++++++++++++++++++++++++++++++++++++++

可以為用戶,交易和更多參數欄位自定義報告。然後可以針對特定需求和歷史統計數據創建報告。

2.ST03/ST03N

Local History and Distribution => Load History

=>TOTAL =>選擇日期

=> Analysis Views = > User and SettlementStatistics

=>User Profile

3.CDHDR/CDPOS

一、SAP業務更改記錄

1)、sap的欄位和對象的修改都會保存舊值,數據保存在CDHDR和CDPOS表。

2)、表CDHDR

表CDHDR記錄了用戶於什麼時間點用什麼樣的事務代碼修改了什麼樣的對象

在表CDHDR欄位:Change doc. Object代表了修改的對象

3)、表CDPOS 是更改記錄的行項目

記錄了具體是哪個表中的哪個欄位,從什麼值修改為了什麼值

如需查看文檔對象,可使用事務代碼SCDO,相關表為TCDOB/TCDOBT

CHNGIND(修改標識符)輸入:D(U表示更新,I表示插入,E表示刪除單個欄位,D表示刪除整行或整個單據)

二、更改記錄的報表查詢

1、可以在t-code中點擊changes,來進行查詢;

2、通過專門的t-code查詢某個具體Change Object

如OV51 查看:Display of Changes for Customer

ME14 查看 changes to Purchasing Info Record

3、通過事務代碼AUT10 可以查詢所有的Change Object,實際上就是針對上述2個做了一個報

三、表CDHDR and CDPOS更新原則

1、創建時,系統的更新原則與更新內容。

可以通過創建主數據、業務數據、創建業務數據項目來測試

基本的結論是

創建時一般不保存記錄,即使保存,也只是簡單記錄一下,能夠在上述2個「新建一條數據」

2、修改數據時,系統的更新原則與更新內容。

基本原則:以下類型的欄位不會查看到更改記錄

  • 不能夠修改的欄位,例如創建日期、創建者;
  • 在可以通過其他途徑可以看到的欄位(在其他中可以看到更改的東西);如在銷售訂單中,對行項目的數量、金額更改在VBEP(數量更改)、KONA(金額更改)中
  • 其他一些特殊情況

具體的控制點是sap會對表中的每一個欄位都會有一個標記LOGFLAG,該欄位控制Indicator for writing change documents

如何使用

簡單指引:

1, 將 Key Doc No. ( 如: SO No. / PO No. 等)作為 Object_ID 在 CDHDR 中查詢出相關的Object Class 及 CHANGENR 變更號碼及日期等信息;

2,基於已知或查出的 Object Class 及 Changenr 及 Table Name / Field Name 即可查詢歷史記錄,如要細化,則需使用 TableKey 進行組合查詢;

3,其中 Table Name 有時會和實際的表名不一致,需使用一些方法查出。

Change SAP documents — tables CDHDR and CDPOS

By Willem Hoek

This notes relates to SAP ECC (ERP Central Component) 5.0

Changes to a lot of SAP documents are stored in table CDHDR and table CDPOS. This include changes such as: change data in Material Master, changes to Purchase Req (PR), Purch Orders, Contracts, Sales Orders, and many more.

Lets look at an example where an existing purchase order (PO) is changed.

  • Create a PO (number 4500000616)
  • Now lets make a change to the PO. Lets change the Short text in item 10 from 「FLOWERS」 to 「SAPZX」.

The change information can be see in Purchase Order. Menu: Environment > Item Changes

This changed information are stored in table CDHDR and table CDPOS. Lets see if we can find it by displaying the table using transaction se16 (display table):

The detail of what was changed is in table CDPOS. The link is via the document number, field CHANGENR. Lets look at table CDPOS

These tables contains not just PO changes but changes to most SAP documents (accross all functional areas). So, as you can imagine these tables get huge. Entries in tables are grouped by Object Class (field OBJECTCLAS — Change doc object). Some of these options include:

OBJECTCLAS – transaction (fields in CDHDR)

  • ADRESSE – xk01
  • ADRESSE3 – su01
  • BANF – me54n
  • BELEG – vf21
  • BETRIEB – vd02
  • COND_A – me31k
  • DEBI – xd01, xd02
  • EINKBELEG – me22n <<< example above
  • ENTRYSHEET – ml85
  • FEATURE – ct04
  • INCOMINGINVOICE – mrbr
  • INFOSATZ – me13
  • KLASSE – cl02
  • KRED – xk02
  • LIEFERUNG – vl03n
  • MATERIAL – mm01
  • MM_SERVICE – me22n
  • MRP_AREA – mm01
  • NRINTERVAL – omh6
  • PFCG – pfcg
  • REVISION – me32k
  • SACH – fs00
  • SPEC_TMP – ml10
  • STLV – ml02
  • VASMD – ac03
  • VERKBELEG – va02
  • …. etc

提取舊值方法

1) 使用sap的標準函數CHANGEDOCUMENT_READ_HEADERS 和CHANGEDOCUMENT_READ_POSITIONS

CALL FUNCTION 『CHANGEDOCUMENT_READ_POSITIONS』 「Change document: Read change document items
EXPORTING
* archive_handle = 0 」 sy-tabix Handle on Open Archive Files
changenumber = 」 cdpos-changenr Change document number
* tablekey = SPACE 」 cdpos-tabkey Object class table key
* tablename = SPACE 」 cdpos-tabname Object class table name
* tablekey254 = SPACE 」 cdpos_uid-tabkey Table Key for CDPOS in Character 254
* keyguid = SPACE 」 cdpos_uid-keyguid UUID in Character Format
* keyguid_str = SPACE 」 cdpos_str-keyguid UUID in Character Format
IMPORTING
header = 」 cdhdr Change document header (structure CDHDR)
et_cdred_str = 」 cdred_str_tab Additional Change Document – Table for STRINGs
* TABLES
* editpos = 」 cdshw Table with edited change document items
EDITPOS_WITH_HEADER = 「CDRED 更改文檔,顯示結構
EXCEPTIONS
NO_POSITION_FOUND = 1 」 No item foun
WRONG_ACCESS_TO_ARCHIVE = 2 」 incorrect access to archive

2)使用select語句直接從表中讀取。
直接使用SELECT語句讀取數據的示例:
*提取信用額度欄位修改的抬頭信息
select cdhdr~changenr cdhdr~udate cdhdr~utime
into corresponding fields of table p_cdhdr
from cdhdr
where cdhdr~objectclas = 『KLIM』 and
cdhdr~objectid = wa_customerinfo-kunnr.
if sy-subrc = 0.
*提取信用額度欄位修改的欄位值
select cdpos~changenr cdpos~value_old cdpos~value_new
into corresponding fields of table p_cdpos
from cdpos
for all entries in p_cdhdr
where cdpos~objectclas = 『KLIM』 and
cdpos~objectid = wa_customerinfo-kunnr and
cdpos~changenr = p_cdhdr-changenr and
cdpos~tabname = 『KNKK』 and
cdpos~fname = 『KLIMK』.
if sy-subrc = 0.
endif.
endif.
可以在CHANGEDOCUMENT_READ_HEADERS 中設置中斷獲得對象類型。

ex.

提取有變動的 Acc. changes
SELECT SINGLE tabkey value_new INTO (cdpos-tabkey,ikoinh)
FROM cdpos
WHERE objectclas = 『KRED』
AND objectid = itab-lifnr
AND changenr = itab-changenr
AND tabname = 『LFBK』
AND fname = 『KOINH』.

提取有變動的vendor最新日期

SELECT MAX( udate ) INTO itab-cndate FROM cdhdr
WHERE objectclas = 『KRED』 AND objectid = itab-lifnr.

——————————————————————————–

抓取所有有變動的程序

report ztest001.
TYPE-POOLS slis.
DATA : cdhdr TYPE cdhdr.
SELECT-OPTIONS :
s_objcls FOR cdhdr-objectclas OBLIGATORY,
s_objtid FOR cdhdr-objectid,
s_chngnr FOR cdhdr-changenr,
s_usrnam FOR cdhdr-username DEFAULT sy-uname,
s_udate FOR cdhdr-udate DEFAULT sy-datum,
s_time FOR cdhdr-utime,
s_tcode FOR cdhdr-tcode,
s_plncnr FOR cdhdr-planchngnr,
s_chngno FOR cdhdr-act_chngno,
s_wsplnd FOR cdhdr-was_plannd,
s_chngid FOR cdhdr-change_ind.

SELECTION-SCREEN SKIP.
PARAMETERS p_max TYPE numc3 OBLIGATORY DEFAULT 『200』.

*———————————————————————*
TYPES :
BEGIN OF ty_s_cdhdr.
INCLUDE STRUCTURE cdhdr.
TYPES : checkbox,
END OF ty_s_cdhdr,

BEGIN OF ty_s_cdpos.
INCLUDE STRUCTURE cdpos.
TYPES : checkbox,
END OF ty_s_cdpos.

*———————————————————————*
DATA :
* Layout for ALV
gs_layout TYPE slis_layout_alv,
* Change document header
t_cdhdr TYPE TABLE OF ty_s_cdhdr.

*———————————————————————*
START-OF-SELECTION.

* Read Change document header
SELECT * INTO TABLE t_cdhdr
UP TO p_max ROWS
FROM cdhdr
WHERE objectclas IN s_objcls
and objectid in s_objtid
and changenr in s_chngnr
AND username IN s_usrnam
AND udate IN s_udate
AND utime IN s_time
AND tcode IN s_tcode
AND planchngnr IN s_plncnr
AND act_chngno IN s_chngno
AND was_plannd IN s_wsplnd
AND change_ind IN s_chngid.

gs_layout-zebra = 『X』.
gs_layout-colwidth_optimize = 『X』.
gs_layout-box_fieldname = 『CHECKBOX』.

* Display ALV
CALL FUNCTION 『REUSE_ALV_GRID_DISPLAY』
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 『USER_COMMAND』
i_structure_name = 『CDHDR』
is_layout = gs_layout
TABLES
t_outtab = t_cdhdr.

*———————————————————————*
* FORM USER_COMMAND *
*———————————————————————*
FORM user_command USING u_ucomm TYPE syucomm
us_selfield TYPE slis_selfield. 「#EC CALLED

* Macro definition
DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
ls_sort-up = 『X』.
append ls_sort to lt_sort.
END-OF-DEFINITION.

DATA :
ls_cdhdr TYPE ty_s_cdhdr,
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv,
* Change document items
lt_cdpos TYPE TABLE OF ty_s_cdpos.

CASE u_ucomm.
WHEN 『&IC1』.
PERFORM check_marked USING us_selfield.

* Read Change document items
LOOP AT t_cdhdr INTO ls_cdhdr WHERE checkbox = 『X』.
SELECT * APPENDING TABLE lt_cdpos
FROM cdpos
WHERE objectclas = ls_cdhdr-objectclas
AND objectid = ls_cdhdr-objectid
AND changenr = ls_cdhdr-changenr.
ENDLOOP.

m_sort 『CHANGENR』.

* Display ALV
CALL FUNCTION 『REUSE_ALV_GRID_DISPLAY』
EXPORTING
i_structure_name = 『CDPOS』
is_layout = gs_layout
it_sort = lt_sort
TABLES
t_outtab = lt_cdpos.

ENDCASE.

ENDFORM. 」 USER_COMMAND
*——————————————————————–

FORM check_marked USING us_selfield TYPE slis_selfield.

FIELD-SYMBOLS :
<cdhdr> TYPE ty_s_cdhdr.

READ TABLE t_cdhdr TRANSPORTING NO FIELDS WITH KEY checkbox = 『X』.
IF NOT sy-subrc IS INITIAL AND
NOT us_selfield-tabindex IS INITIAL.
READ TABLE t_cdhdr INDEX us_selfield-tabindex ASSIGNING <cdhdr>.
<cdhdr>-checkbox = 『X』.
ENDIF.

ENDFORM.

4.SM19/SM20

請查看連結:https://www.sapzx.com/5719.html

5.其它

1.SU01中用戶變更歷史記錄

2. DBTABLOG表

相關焦點

  • 汐帆信息:「業務數據&用戶行為分析」 的SAP系統風險管控
    如何有效的「識別虛假的虛增收入」,尋找到「會計分錄背後的小金庫」,發現員工的「虛假報銷的秘密」,以及如何監管審查「通過供應商分析發現採購利益輸送」,或者「通過產能分析發現生產環節員工舞弊」的情況……作為企業的決策管理層或者信息化主管,在面臨SAP ERP系統審計時,利用好現有的系統數據分析提高審計質量和效率
  • SAP Basis管理員常用事務代碼Tcode
    賽銳信息、sap代理商、sap服務商、sap系統、SAP ERP,SAP ERP系統、sap實施公司關鍵字: SAP BASIS、SAP事務代碼、SAP 運維、 SAP系統監控、SAP 權限管理、SAP 帳號審計, SAP License 審計、SAP 審計報告1 系統監視1.1 進程監視SM66/SM50 進程查看 : 管理員需全天監看系統的進程
  • SAP內部安全審核方法
    通過設定參數login/no_automatic_usr_sapstar =0,此時運用SE38 運行程序RSUSR003查看上述用戶的初始密碼,更改所有密碼。3) 設置一定的密碼規則,對於簡單通用密碼可以使用SE16運行表USR40查看,通知用戶及時更改。
  • 輕量級的分布式日誌追蹤利器,十分鐘可接入,從此日誌追蹤無難事
    前言隨著微服務盛行,很多公司都把系統按照業務邊界拆成了很多微服務,在排隊查日誌的時候。因為業務鏈路貫穿著很多微服務節點,導致定位某個請求的日誌以及上下遊業務的日誌會變得有些困難。這時候很多童鞋會開始考慮上SkyWalking,Pinpoint等分布式追蹤系統來解決,基於OpenTracing規範,而且通常都是無侵入性的,並且有相對友好的管理界面來進行鏈路Span的查詢。但是搭建分布式追蹤系統,熟悉以及推廣到全公司的系統需要一定的時間周期,而且當中涉及到鏈路span節點的存儲成本問題,全量採集還是部分採集?
  • 輕量級分布式日誌追蹤利器,十分鐘即可接入,從此日誌追蹤無難事
    因為業務鏈路貫穿著很多微服務節點,導致定位某個請求的日誌以及上下遊業務的日誌會變得有些困難。這時候很多童鞋會開始考慮上SkyWalking,Pinpoint等分布式追蹤系統來解決,基於OpenTracing規範,而且通常都是無侵入性的,並且有相對友好的管理界面來進行鏈路Span的查詢。
  • 關於監控、鏈路追蹤、日誌三者的區別
    監控、鏈路追蹤、日誌對於一個系統來說,監控、鏈路追蹤、日誌的這三者需求都是必然存在的,而有的時候我們會搞不清楚這三者相互之間是什麼關係。我之前在做系統設計的時候也考慮過,是不是有必要引入那麼多組件,畢竟如果這三者完全分開每一個一項的話,就有三個組件了(事實上就是:Prometheus+Grafana、Jaeger、ELK)。
  • 利用SM19和SM20,查看SAP用戶登錄歷史記錄
    思路:在SM19中新建安全審計參數文件,然後在SM20中讀取審計日誌1、 T-code: SM19, 新建安全審計參數文件加過濾器,只選擇統計用戶登陸情況,配置細節勾上『LOGON Successful』。先保存,後激活,參數文件建好了。2. 參數文件建好後,系統會自動按參數文件設置收集數據。
  • 詳述Windows7系統上啟用IIS日誌記錄
    為了跟其他應用服務與伺服器作業系統的日誌區分開來,筆者就建議大家在網站級別上進行管理。當然,在哪個級別上進行日誌管理,對於日誌的內容沒有實際性的差異。主要是看伺服器的部署以及系統管理員的工作習慣而定。二、 為日誌記錄選擇合適的格式如果選擇網站級別來管理日誌的話,這個日誌的格式有多種選擇。最重要的是,系統管理員可以選擇IIS的日誌記錄格式。
  • SAP全日誌管理系統(堡壘機)
    二、系統原理:AMS-L系統基於AMS安全網關伺服器在網絡層面獲取SAP系統業務用戶的網絡報文,實現自動偵聽採集經SAP GUI的用戶操作數據並轉換為面向用戶業務行為的審計日誌;同時記錄管理SAP系統業務層面的自定義應用程式運行、敏感事物代碼執行、特殊憑證創建操作等的日誌。
  • 高效日誌系統搭建秘技!架構師必讀
    日誌系統記錄的用戶行為有以下的作用:從系統用戶角度看:它展示了用戶自身的操作歷史和具體對象的變動歷史,便於用戶進行梳理從系統管理員角度看:它可以記錄了所有用戶操作,便於我們定位異常行為例如,在git的project操作中,我們就可以看到這樣的操作日誌展示:對於這樣的日誌記錄,我們可以在相關記錄點添加對應的日誌寫入代碼或者通過切面實現。
  • Linux系統查看系統日誌教程
    1、Linux系統日誌的三種類型1.內核及系統日誌這種日誌數據由系統服務rsyslog統一管理,根據其主配置文件/etc/rsyslog.conf中的設置決定將內核消息及各種系統程序消息記錄到什麼位置。系統中有相當一部分程序會把日誌文件交由rsyslog管理,因而這些程序使用的日誌記錄也具有相似的格式。
  • 網站伺服器被入侵該如何查詢攻擊日誌
    本文詳細介紹了windows的系統日誌種類,存儲具體位置,檢索方式,以及使用工具的方便檢索。系統日誌信息在windows系統軟體運行過程中會不斷地被記錄,依據記錄的種類能夠分成系統日誌、IIS系統日誌、ftp客戶端系統日誌、資料庫系統日誌、郵件服務系統日誌等。活動記錄,WindowsEventLog文件實際上是以一種特殊的數據結構存儲內容,包含關於系統軟體、安全性、應用軟體的記錄。
  • SAP Backgroud job
    後臺作業管理最為困難的解決方案的取捨,系統負載的調控。失控的後臺作業,往往對系統帶來災難性的性能問題,也會導致權限管理的風險,結果是得不償失,而且可能導致流程混亂。所以個人認為,要創建一個周期性的後臺作業之前,首先應該慎重分析。比方說,一個已經明顯偏向OLAP類型的報表,如果能夠用BI去實現,為什麼還要堅持在生產系統去跑長時間的後臺作業?這極有可能是一種嚴重的重複運行的性能問題。
  • 監控、鏈路追蹤、日誌這三者有何區別?
    監控、鏈路追蹤、日誌對於一個系統來說,監控、鏈路追蹤、日誌的這三者需求都是必然存在的,而有的時候我們會搞不清楚這三者相互之間是什麼關係。我之前在做系統設計的時候也考慮過,是不是有必要引入那麼多組件,畢竟如果這三者完全分開每一個一項的話,就有三個組件了(事實上就是:Prometheus+Grafana、Jaeger、ELK)。因此想做個筆記嘗試舉例來梳理下。
  • 在Ubuntu上配置日誌查詢系統
    它提供了一個分布式多用戶能力的全文搜尋引擎,在這款日誌查詢系統中主要用來自定義搜索。  Logstash項目誕生於 2009 年 8 月 2 日,是用於接收,處理,轉發日誌的工具。在這款日誌查詢系統中主要用來監控並過濾日誌。  Kibana是一個使用 Apache 開源協議,能夠很好的對實時數據進行分析。是一個基於瀏覽器頁面的,Elasticsearch前端展示工具。
  • Linux系統日誌文件的產生方式
    小編跟用戶介紹過美國伺服器Linux系統日誌文件,相信用戶們都了解了美國伺服器Linux系統日誌文件的重要性,今天小編繼續來跟大家分享下,美國伺服器Linux系統日誌文件的產生方式。在美國伺服器Linux系統中提供syslogd這個服務來同一管理日誌文件,除了這個syslogd之外,系統內核也需要額外的登入服務來記錄內核所產生的各項信息,這個專門記錄內核信息的日誌文件服務就是klogd。所以美國伺服器Linux系統日誌文件所需服務主要就是syslogd和klogd這兩個。
  • EasyLog 2.0 版本發布,開源分布式日誌系統
    近期EasyLog發布2.0版本,並且完成了最終版本版本內容:  1.優化日誌查詢效率 2.增加容量管理界面   增加管理界面,可以查看每天的日誌數量,和佔用空間,方便管理日誌系統容量問題。 5.增加全局traceId打點      原先要產生鏈路追蹤日誌需要用戶在方法上手動打點,本次增加了一個全局打點,方便對於並發要求不高的項目進行便捷配置
  • Spring Cloud微服務系統添加ELK+logback可視化日誌分析管理工具
    為Spring Cloud微服務系統添加ELK+logback可視化日誌分析管理工具一、問題起源 微服務架構中,除了Spring Cloud所需的組件,如網關、Eureka註冊中心、配置中心等,還有大量經過業務拆分生成的微服務節點。如何有效地收集匯總各個微服務節點的日誌,對於應對微服務架構的複雜性有很大的幫助。
  • TLog:十分鐘接入,輕量級的分布式日誌標記追蹤神器
    因為業務鏈路貫穿著很多微服務節點,導致定位某個請求的日誌以及上下遊業務的日誌會變得有些困難。這時候很多童鞋會開始考慮上SkyWalking,Pinpoint等分布式追蹤系統來解決,基於OpenTracing規範,而且通常都是無侵入性的,並且有相對友好的管理界面來進行鏈路Span的查詢。
  • 致命漏洞使黑客輕易攻破SAP系統
    E安全12月29日訊近期,據研究報告建議,SAP用戶應立即部署一個針對嚴重漏洞的新發布補丁,該漏洞可能允許黑客破壞其系統和其中包含的數據。該漏洞存在於大多數SAP部署中默認存在的核心組件中,無需用戶名和密碼即可進行遠程利用。