sabato 5 novembre 2022

ODI 12c - How Is It Possible To Restrict ODI User Access To Projects and Models?

Oggi vediamo la security di ODI  che permette di limitare gli accessi agli utenti ai vari oggetti di ODI. Supponiamo di dover:

  1. Limitare l'accesso ad un progetto 
  2. Limitare l'accesso ai model che contengono gli odidatastore
Come primo step creiamo un utente a cui permettere di visualizzare un solo progetto ed un solo folder.



Una volta creato l'utente TEST_AP questo risulta essere presente su ODI ma senza alcun privilegio compreso quello di CONNECT, quindi se proviamo a connetterci avremo un errore.




A questo punto occorre aggiungere all'utente i relativi profili di sicurezza presenti su ODI tra cui CONNECT affinchè si possa connettere ad ODI.


Assegnato il profilo CONNECT l'utente riesce a collegarsi ad ODI ma non vede nulla di quanto presente sul Work Repository.


A questo punto affinchè l'utente possa vedere quanto presente nel designer occorre associare i corretti profili. Per permettere la visualizzazione di un progetto occorre assegnare il profilo NG_DESIGNER che rispetto al profilo DESIGNER presente una serie di limitazioni.

Partiamo da quanto presente sul WorkRepository e facciamo in modo che l'utente creato TEST_AP visualizzi solo quanto presente nel progetto TEST2.



Assegnamo all'utente TEST_AP i profili NG_DESIGNER ed NG_METADATA_ADMIN



Una volta applicati all'utente i profili scelti effettuiamo un DRAG del progetto da selezionare sull'utente TEST_AP ed a questo punto nel momento in cui applichiamo le modifiche si aprirà un pannello con tutti i privilegi associati al progetto TEST2 da associare all'utente TEST_AP selezionato.



A questo punto selezioniamo le grant necessarie e se ci ricolleghiamo con l'utente TEST_AP avremo presente nel DESIGNER il progetto scelto.



Per assegnare i modelli occorre effettuare un drag del modello sull'utente cosi come avvenuto per il progetto ed anche in questo caso si aprire una finestra con tutte le grant associate al Model e da associare all'utente TEST_AP.




Se ci colleghiamo con l'utente TEST_AP questo è quanto visualizzeremo nel DESIGNER:



Tuttavia  anche se visualizziamo il progetto con i relativi Packages e Mapping e Modelli non possiamo crearne di nuovi in quanto non abbiamo le necessarie grant.





Per creare nuovi mapping o odidastore occorre modificare le grant presenti nei profili assegnati. 




Da quanto indicato sopra si evince che per la definizione precisa di grant occorre purtroppo visualizzare i vari profili o crearne di nuovi ma tuttavia occorre per forza definire prima tutte le grant e poi associarle ai vari utenti. Questo significa creare dei profili ad hoc da assegnare ai vari utenti, magari duplicando quelli originali messi a disposizione da ODI. Occorre però tenere presente che in caso di Upgrade i profili custom non verranno aggiornati:


Di seguito alcune note ODI da visionare prima di effettuare modifiche ai vari profili di sicurezza:
  • NOTE:423677.1 - How Is It Possible To Restrict ODI User Access To Projects and Models?
  • NOTE:423787.1 - Setting Up ODI User Privileges On Folder Objects
  • NOTE:424351.1 - How is it Possible to Inhibit ODI Users From Reverse Engineering Specific Models?
  • NOTE:424530.1 - How To Manage Access Authorizations On Object Instances In Different ODI Work Repositories
  • NOTE:424664.1 - Restricting Privileges to Users and Contexts in ODI with Security Manager
  • NOTE:823783.1 - Frequently Asked Questions Concerning ODI Users, Roles Credentials and Security