Per chi non conosce gli aspetti autorizzativi SAP potrebbe essere uno scioglilingua oppure dei geroglifici.
Al contrario per chi si occupa di autorizzazioni SAP sono oggetti autorizzativi ben noti. Ma come comportarsi? Cosa conviene gestire, come e quando?
La protezione delle tabelle in SAP
Esistono parecchie centinaia di migliaia di tabelle definite in SAP. Puoi vederle dalla tabella delle tabelle, la DD02L (questa tabella contiene tutte le tabelle definite in SAP).
Premesso che l'accesso diretto alle tabelle non dovrebbe essere ammesso per gli utenti finali, è possibile tuttavia che transazioni o funzionalità anche standard SAP ne richiedano l'accesso. Quando un utente usa determinate funzioni.
Ad esempio?
I tassi di cambio oppure i periodi contabili. Sono tabelle che normalmente vengono date in gestione agli utenti finali. Di conseguenza chi deve accedere, ha bisogno delle autorizzazioni relative a quelle particolar tabelle di configurazione.
Fino al 2010 non era possibile in SAP autorizzare la singola tabella. Era necessario lavorare in base al concetto di gruppo autorizzativo delle tabelle SAP.
Ogni tabella SAP era (ed è ancora oggi) classificata in base ad un gruppo autorizzativo. In un determinato gruppo possono esserci molte tabelle.
Per identificare in quale gruppo è una determinata tabella si può usare la transazione SE54, inserendo la tabella e premendo su display, nelle release più recenti, è possibile inserire la tabella (o le tabelle) e vedere in quale gruppo sono. Tramite questa transazione è anche possibile creare dei nuovi gruppi (solitamente questa attività viene svolta dagli sviluppatori)
La tabella MARA (General Material Data) è nel gruppo MA (che contiene più di 600 tabelle)
Esiste inoltre un gruppo standard chiamato &NC& (Not Classified) dove SAP ha inserito delle tabelle non considerate critiche. Se un a tabella non è classificata viene controllato comunque questo gruppo.
Ma quante tabelle sono presenti nei vari gruppi?
Il gruppo autorizzativo che contiene più tabelle è quello non classificato (Dati estratti da un sistema SAP_BASIS 752-SP04), a seguire l'area HR (gruppi PC e PA), poi quello della configurazione del sistema e security (SS) e a seguire gli altri.
Che cosa significa quando stai assegnando il gruppo autorizzativo &NC& quindi?
Che stai potenzialmente autorizzando la lettura o modifica di più di 100.000 tabelle SAP.
A seguito è stato introdotto da SAP un ulteriore oggetto autorizzativo per proteggere l'accesso alla singola tabella (1481950 - New authorization check for generic table access)
Quali e quanti oggetti autorizzativi esistono per la protezione dei dati in SAP?
Sono parecchi, anche se i più noti sono quelli riportati nel titolo di questo post. La lista completa è la seguente:
- S_TABU_CLI Cross-Client Table Maintenance
- S_TABU_DIS Table Maintenance (using standard tools such as SM30)
- S_TABU_LIN Authorization for Organizational Unit
- S_TABU_NAM Table Access by Generic Standard Tools
- S_TABU_RFC Client Comparison and Copy: Data Export with RFC
- S_TABU_SQL Authorization object for SQL Command Editor
Il primo per importanza è l'S_TABU_DIS, serve per proteggere la lettura e scrittura delle tabelle SAP, in base ad un gruppo autorizzativo (vedi quanto già detto in precedenza).
Il campo DICBERCLS contiene infatti il gruppo autorizzativo delle tabelle. Mentre il campo ACTVT contiene l'attività permessa, in questo caso:
- 02 Modificare
- 03 Visualizzare (la sola lettura può essere critica in ottica GDPR)
- BD Nel caso in cui debba essere ignorato il blocco per la distribuzione del customizing
Il secondo introdotto più recentemente è l'S_TABU_NAM ovvero l'oggetto autorizzativo che permette di proteggere l'accesso alle tabelle (in visualizza, crea o modifica) a cascata dell'S_TABU_DIS
Questo oggetto è formato da due campi:
- ACTVT - Attività
- TABLE - Tabella
In questo caso è possibile specificare quale singola tabella/e autorizzare, senza rilasciare tutto un gruppo di tabelle come previsto dall'oggetto S_TABU_DIS.
Attenzione, dalla release SAP_BASIS 7.50 l'ordine di controllo si inverte, prima S_TABU_NAM e poi S_TABU_DIS (3077347 - Replace S_TABU_DIS with VIEW_AUTHORITY_CHECK)
La SAP ha introdotto anche un report per capire più facilmente a quali tabelle ha accesso un certo utente o ruolo SUSR_TABLES_WITH_AUTH
Tramite una apposita transazione (SU24_S_TABU_NAM) è possibile inoltre verificare come sono gestiti nella transazione SU24 gli oggetti coinvolti.
Ma quale usare tra S_TABU_DIS e S_TABU_NAM?
Dipende da alcuni fattori a mio avviso:
- Stai installando un nuovo sistema oppure sei in un sistema esistente?
- Che grado di segregazione vuoi dare?
Se sei in un nuovo sistema potresti iniziare ad usare solamente l'S_TABU_NAM, attenzione in alcune transazioni standard SAP è presente solo S_TABU_DIS (nel legame transazione/oggetti autorizzativi, in SU24) quindi dovresti sistemare, può non essere immediato.
Una volta che inizi a gestire S_TABU_NAM dovresti essere sempre coerente.
In alcuni sistemi attivi da molto tempo potrebbe non essere immediato convertire tutto da DIS a NAM.
Puoi inoltre pensare di gestire gli oggetti anche contemporaneamente ovvero S_TABU_DIS ed S_TABU_NAM, questi ultimi nel caso di accessi mirati.
Se tuttavia il sistema è profilato correttamente e non ci sono accessi critici ad utenti, potresti gestire S_TABU_DIS ed S_TABU_NAM eventualmente solo per alcuni accessi, come ulteriore segregazione.
Quali altri oggetti legati alle tabelle ma meno frequenti
L'oggetto S_TABU_CLI viene usato per autorizzare o meno la modifica delle tabelle cross-client. Solitamente assegnato ad amministratori di sistema eventualmente.
L'oggetto S_TABU_RFC ad esempio, viene utilizzato nel sistema sorgente per testare l'accesso via RFC a tabelle su altri sistemi. Ad esempio, per il confronto del custominzig tra due sistemi tramite la transazione SCU0.
L'oggetto S_TABU_LIN per segregare a livello di riga della singola tabella. Meriterebbe un post ad hoc. Ad esempio, può essere usato per limitare la visibilità di una tabella in base ad alcuni criteri ad esempio la società. Può essere usato per limitare ad esempio la gestione dei periodi contabili a seconda delle società di appartenenza (evitando così di creare transazioni ad hoc).
L'oggetto S_TABU_SQL quando sono utilizzate funzionalità di esecuzione comandi via SQL ad esempio tramite la transazione sistemistica DB02
- S_TABU_SQL
- ACTVT 33
- DBSID LOCAL
- TABLE USR02
- TABOWNER SAPSR3