Newsgroup: it.comp.appl.access
Titolo: connect & protect

Vorrei farmi un bel recordset su una tabella di un DB protetto....
Come lo apro?
Dove gli passo la PW?
Qual'e' l'MDW da usare?
L'utente deve esere per forza quello cha ha aperto il BE?
Il workspace deve essere creato o posso usare il corrente?
Ho provato a crearmi un workspace nuovo con uetnte e PW ma mi dice che l'mdw
e' gia' aperto in esclusiva.....
Ho provato a fare un connect al database (che va a buon fine perche' riesco
a leggere gli oggetti), ma il recordset sulla tabella non me lo fa fare per
via delle autorizzazioni (che non so come passargli!).
Quindi?:-)
Saluti.
Luciano


Dipende dalla situazione in cui ti trovi.
- L'utente corrente non e' autorizzato a leggere e scrivere
sulla tab in questione, ma tu vuoi farglielo fare lo
stesso?
- Vuoi accedere al db protetto da uno non protetto (ovvero
i gruppi di lavoro (mdw) sono diversi)?
Spiega meglio qual'e' la situazione :-))
-- 
Federico
--------------------------------------
Sito Comune di it.comp.database.access
 ed ora
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------

Spiega meglio qual'e' la situazione :-))
La situazione la devo creare io percio' la posso creare  come me pare!:-)
Il senso e' questo:
- Il BE deve essere accessibile solo dal FE (questo e' prioritario)
- Nel FE l'utente deve fare solo quello che dico io, lavorare solo
sulle/dalle maschere e non poter leggere i dati nelle tabelle (allegate).
- Nessuno mi obbliga ad usare MDW diversi o uguali quindi, ma posso
deciderlo io.
In sostanza devo evitare il saccheggio dei dati!
Pensavo quindi di fare un connect al volo con tanto di PW del BE ma non ci
sono risucito per i motivi di cui al primo msg del thread.
Saluti.
Luciano

 sono risucito per i motivi di cui al primo msg del thread.
Continuo a non capire (ma forse sono io!!) :-)
Cmq, per accedere come utente diverso da quello corrente,
ma dello stesso gruppo di lavoro, devi creare un nuovo
workspace come segue:
Dim wrk As Workspace
Dim db As Database
Set wrk = DBEngine.CreateWorkspace("", "utente", "pwd",
dbUseJet) 'ecco perche' ti consiglio VB
Set db = wrk.OpenDatabase(strDB)
...
chiaramente utente deve essere autorizzato alla lettura dei
dati per quel determinato gruppo di lavoro!
se proprio usi access, ti consiglio di criptare la pwd!!
Speriamo bene :-))


Speriamo bene :-))
Speriamo e basta? Disfattista!!.-))))
Grazie.
Luciano

 e' piu' chiaro ora quello che vorrei fare? Sempre che si possa!:-)
NO!!
- il FE e' protetto, cosi' come lo e' il BE?
- se il FE e' protetto, usa lo stesso gruppo di lavoro del
BE?
- le tabelle del BE sono allegate nel FE o no!


- le tabelle del BE sono allegate nel FE o no!
Idem come sopra! Le posso allegare permanentemente all'avvio (e' su un CD
quindi non posso sapere a priori il path ma devo ricavarmelo ogni volta e
riallegare) o posso collegarle al volo solo quando mi serve.
Il mio problema fondamentale e' cosa mi conviene fare per ottenere:
1) che il BE sia inaccessibile.
2) che nel FE vengano lanciate delle query da maschera (e solo da li!) che
funzionino in modo normale per l'utente, intendendo con questo che a lui sia
trasparente il fatto che mi vado a leggere dei dati su un BE protetto.
Ripeto quello che vorrei fare:
- Tizio apre il FE, apre la maschera X, fa le sue scelte e lancia la query.
- Mi vado a leggere i dati sul BE passandogli utente e PW
- Restituisco il risultato all'utente.
Quello che non so e':
se mi conviene usare due MDW diversi per BE ed FE.
Come e dove passare utente e PW per accedere al BE da codice (sul workspace?
Sul connectdatabase?) e come.
Chiudo con una dotta citazione da una  barzelletta sui caramba: marescia',
questo e' il cesso, il culo ve l'ho fatto vedere ieri. Me lo date 'sto
rotolo di carta igienica??:-))))
Ciao e grazie!
Luciano

 Luciano
Sono giunto alla conclusione che e' impossibile allegare
tabelle usando un altro mdw.
Spero qlc mi smentista!
Prova a fare cosi':
- usa lo stesso mdw per il BE e per il FE;
- nel BE, per le tabelle, dai come unica autorizzazione la
lettura della struttura;
- nel FE allega le tabelle e tienile allegate;
- nel FE, per le tabelle, dai tutte le autorizzazioni
(Amministra);
- ad ogni avvio controlli i collegamenti ed eventualmente
rialleghi le tabelle normalmente.
A questo punto l'utente puo allegare le tabelle, ma non puo
leggere o modificare i dati.
Per quanto riguarda la gestione dei dati vi sono varie
alternative:
Se hai bisogno di query memorizzate, allora puoi crearle
via codice e poi eliminarle.
Per crearle fai cosi:
    Dim wrk As Workspace
    Dim dbs As Database
    Dim strSQL As String
    Dim qdf As QueryDef
    strSQL = "SELECT * " & _
            "FROM nomeTab " & _
            "WITH OWNERACCESS OPTION;"
    Set wrk = DBEngine.CreateWorkspace("def", "user",
"pwd", dbUseJet)
    Set dbs = wrk.OpenDatabase(CurrentDb.Name, False,
False)
    Set qdf = dbs.CreateQueryDef("nomeQuery", strSQL)
    Set dbs = Nothing
    wrk.Close
Nota bene 'WITH OWNERACCESS', vedi help per spiegazioni :-)
Se invece hai bisogno di recordset, li crei allo stesso
modo, cioe':
    Dim wrk As Workspace
    Dim dbs As Database
    Dim strSQL As String
    Dim rst As Recordset
    strSQL = "SELECT * " & _
            "FROM nomeTab " & _
            "WITH OWNERACCESS OPTION;"
    Set wrk = DBEngine.CreateWorkspace("def", "user",
"pwd", dbUseJet)
    Set dbs = wrk.OpenDatabase(CurrentDb.Name, False,
False)
    Set rst = dbs.OpenRecordset(strSQL)
    ....
    rst.close
    Set dbs = Nothing
    wrk.Close
Naturalmente in questo modo il tuo user e pwd sono
leggibili nel codice!!!
quindi ti consiglio di criptarle e di proteggere form e
moduli.
Questo e' tutto, spero di esserti stato utile e di aver
considerato tutto.
Fammi sapere se funziona.
-- 
Federico
--------------------------------------
