Come interrogare LDAP fingendo che sia una tabella

Posted by Alessia, Roberta, Saverio ed Antonella | Posted in , , | Posted on 09:06

Questo post è per te se lavori con il db Oracle e se hai desiderato, almeno una volta, di gestire dati Ldap come se fossero tabelle relazionali (o quasi).

Qui puoi scaricare un piccolo package PL/SQL con la logica che consente di accedere ad una Directory LDAP, interrogarla mediante una query ed, infine, ottenere come risultato una tabella.

Invece di noiose spiegazioni, mettiamolo subito all'opera:

  • Scaricate e decomprimete il package; va installato in qualsiasi schema di database. Non ha particolari prerequisiti. L'unico diritto richiesto è di accesso (execute grant) al package DBMS_LDAP.
  • Provate, per prima, una query semplice:
  • select c1 from table(TL.ask('&(cn=SMITH*)',null,'C=IT'
    , 'certificati.postecert.it', 'mail,cn,uid,sn' ));
    
  • Se tutto è a posto, potete tentare interrogazioni più complesse:

SELECT tl.f (c1, 1) mail, tl.f (c1, 2) cn, tl.f (c1, 3) u_id, tl.f (c1, 4) sn
  FROM TABLE (tl.ask ('&(cn=SMITH*)',   -- Query Conditions
                      NULL,             -- Unique ID Condition
                      'C=IT',           -- Base dn
                      'certificati.postecert.it', -- Ldap Address
                      'mail,cn,uid,sn'  -- Attributes
                     )
             );

SELECT tl.f (c1, 1) mail, tl.f (c1, 2) nomeresp, tl.f (c1, 3) cognomeresp,
       tl.f (c1, 4) description, tl.f (c1, 5) mails
  FROM TABLE (tl.ask ('&(CognomeResp=Blas*)',  -- Query Conditions
                      NULL,                    -- Unique ID Condition
                      'c=it',                  -- Base dn 
                      'indicepa.gov.it',       -- Ldap Address 
       -- Attributes (fields)
                      'mail,NomeResp,CognomeResp,description,mailS'                      )
             );

Se pensate che sia una cosa utile e volete qualche dettaglio tecnico in più (che abbiamo evitato per non annoiare troppo), chiedetecelo e noi cercheremo di provvedere.

Buon divertimento!

Comments Posted (0)

Posta un commento