Newsgroup: it.comp.appl.access
Titolo: Sicurezza database be

salve a tutti.
ho una strana richiesta.
Ho un FE che gira in locale su una serie di pc; tale FE collega
diverse tabelle distribuite fra vari BE. Tali BE sono fisicamente
presenti in una cartella di un server, in rete.
Tutti i BE hanno la password di accesso al db che, come ormai tutti
sanno, č facilmente eludibile. Ho pensato di aggiungere ad ogni BE una
maschera che si autoavvia e che via VBA disabiliti la visualizzazione
della finestra del database, dei menu', ecc...
Ma esiste ancora il famoso shift... Ok, so come disabilitarlo. Ma
vorrei fare una cosa piů intelligente: vorrei fare in modo che quando
venga avviato il FE questo via codice disabiliti lo shift sui vari BE.
Ora la domanda č: come faccio a sapere (avendo solo i link delle
tabelle ai vari BE) dove sono i BE (percorso e nome del file)?
grazie e ciao.

 grazie e ciao.
sul sitocomune c'è un esempio di come agire sulle proprietà del db via VBA
se tu in una tabella hai il percorso completo del BE ti basta ciclare un 
recordset che legge il percorso, apre il be, ci carica maschera, 
proprietà, ecc ed il giorco è fatto...
 > Ora la domanda è: come faccio a sapere (avendo solo i link delle
 > tabelle ai vari BE) dove sono i BE (percorso e nome del file)?
 > grazie e ciao.
come fai a linkare una tabella .. se non conosci dove è??? non capisco 
questa frase...
cmq visto che hai detto che il be si trova in una cartella in rete.. ti 
basta costruirti una tabella con i percorsi ed il gioco è fatto (vedi sopra)
ciao
Nick

 grazie e ciao.
mi sa che no ti è chiarissimo il concetto di difesa e il discorso di
disabilitazione.
In ogni caso e anche per la futura manutensione del db ti conviene mappare
la cartella
condivisa come unità di rete e assegnare la stessa lettera
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

condivisa come unità di rete e assegnare la stessa lettera
e a cosa mi servirebbe questa cosa?
grazie e ciao.

Nick
ciao e grazie.

 grazie e ciao.


 wrote:

no no, forse non ci stiamo capendo per niente.
Io ho un FE sul client e una serie di BE su un server (mappato con una
lettera o via UNC non fa alcuna differenza, anzi se proprio devo
essere preciso via UNC è possibile far raggiungere i BE anche da
server remoti che io non gestisco e che non mappano alcuna unità di
rete, ma questo è un altro discorso).
Ora nei vari FE ho i BE già linkati. Vorrei costruire un pezzo di
codice VBA con il quale scorro le tabelle e nelle proprietà rilevo il
link fisico (percorso del file BE) e poi con la proprietà BypassKey
eseguo la disabilitazione del tasto shift.
Ora che ci penso ho trovato la soluzione...
Completo dicendo: perchè faccio questo? Perchè la sola password di
accesso al db potrebbe non bastare per proteggere il contenuto dei
vari BE presenti in rete. Allora intendo proteggere come segue:
1) password di accesso;
2) maschera di avvio che via vba nasconde la finestra del database;
3) disabilitazione del tasto shift per assicurarmi che la maschera
parta sempre (questa disabilitazione deve avvenire ogni volta che
parte un FE da qualche parte sulla rete...)
il problema della manutenzione non sussiste dato che i vari FE vengono
distribuiti al client con le Group Policy di windows 2003 server in un
dominio dove c'è Active Directory.
grazie e ciao!

 ciao e grazie.
se non vuoi gestire i percorsi con una tabella separata fai il ciclo su 
questa query :
SELECT MSysObjects.Database, MSysObjects.Type
FROM MSysObjects
GROUP BY MSysObjects.Database, MSysObjects.Type
HAVING (((MSysObjects.Type)=6));
ti resituisce il nome dei DB che contengono tabelle linkate al tuo FE
Ciao
Nick

Nick
grandioso! era proprio quello che intendevo!!! GRAZIE.
ciao.