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?
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.
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)
Sono parecchi, anche se i più noti sono quelli riportati nel titolo di questo post. La lista completa è la seguente:
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:
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:
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.
Dipende da alcuni fattori a mio avviso:
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.
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