Base de donnée Access et sécurité? HELP.. URGENT (merci)

Base de donnée Access et sécurité? HELP.. URGENT (merci) - Programmation

Marsh Posté le 25-07-2002 à 09:52:48    

Salut à tous,
 
J'aimerais savoir comment mettre en réseau une base de donnée access (.MDB) pour que les utilisateurs puissent avoir accés aux données sous un programme en VB mais ils ne peuvent pas avoir accès au fichier et au répertoire de la base sur le serveur...
 
Tout d'abord je voudrai savoir si cela est possible et si oui, comment je peux faire???
 
Merci d'avance!


---------------
C17
Reply

Marsh Posté le 25-07-2002 à 09:52:48   

Reply

Marsh Posté le 25-07-2002 à 10:11:42    

Access n'est pas un serveur de BDD, et donc n'est pas multi utilisateurs. Si tu veux que plusieurs personnes se connectent dessus, tu devras partager le répertoire contenant le fichier .mdb à ces personnes, et à partir de la, tout sera possible pour elles...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-07-2002 à 10:25:52    

Harkonnen a écrit a écrit :

Access n'est pas un serveur de BDD, et donc n'est pas multi utilisateurs. Si tu veux que plusieurs personnes se connectent dessus, tu devras partager le répertoire contenant le fichier .mdb à ces personnes, et à partir de la, tout sera possible pour elles...




 
Je m'en doutai un peu... dommage
 
Au fait moi je développe en VB, mais je suis débutant, tu pourrais me dire quel serveur de base de données utiliser et comment l'utiliser sous VB? (moi j'avais pensé à MySQL, c'est possible ça?)
 
Merci d'avance!

Reply

Marsh Posté le 25-07-2002 à 10:31:47    

Il est tout à fait possible d'utiliser MySQL en VB, via ADO. Pour ça il te faut un driver ODBC pour MySQL (MyODBC par exemple), puis tu devras créer une DSN correspondant à ta base. Une fois tout ceci fait, tu es paré !
 
Exemple de code :

Code :
  1. Dim cnnConn as adodb.connection
  2. Dim objRec as adodb.recordset
  3. Set cnnConn = new adodb.connection
  4. Set objRec  = new adodb.recordset
  5. cnnConn.connectionstring = "DSN=MysqlODBC"
  6. objRec.open "SELECT ................", cnnConn


c'est tout con...
 


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-07-2002 à 10:34:07    

Merci, tu me sauves la vie!
 
 :hello:

Reply

Marsh Posté le 25-07-2002 à 10:39:49    

Au fait, je parlai de MySQL parce que c'est le seul que je connais qui est gratuit, mais d'après toi, c'est l'idéal pour développer ou il existe autre chose de plus performant? et quels sont les limites de ce serveur? (nombres d'utilisateurs connectés en même temps, nombres d'enr. dans les tables, ...).
 
tu pourrais m'en dire un peu plus à ce sujet?

Reply

Marsh Posté le 25-07-2002 à 10:47:36    

MySQL a le gros avantage d'être gratuit pour une utilisation personnelle, et assez fiable pour des bases de taille moyenne (~2 Go). Par contre, il ne supporte pas certaines fonctionnalités (clés étrangères et sous requetes par exemple).
 
Après, ça dépend de ton budget et de la taille que tu estimes que ta base de données est susceptible d'atteindre. Et la tu as le choix entre Oracle et SQL Server.
 
Oracle est le meilleur SGBD, le plus fiable, le plus performant. SQL Server est bien aussi, mais à mon gout un poil plus lent qu'Oracle (la je sens que je vais faire grincer des dents :d). Niveau fiabilité, les 2 SGBD se valent, et tu pourras sans problème gérer de très grosses bases. Par contre, ils sont payants.
 
Reste Interbase, pas mal non plus, open source (coucou Vazkor :hello:) mais pas envisageable pour des très grosses bases à mon sens. Il entre dans la même catégorie que MySQL (patapai Vazkor :d)
 
Voila !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 25-07-2002 à 10:59:27    

Moi, c'est quand-même pour une utilisation prof. (petite entreprise) mais la base n'est vraiment pas importante (2000 enr. à tout casser(c'est pour celà que j'avais envisagé access)).  
 
Tu peux me donner une estimation des prix?
 
Merci!

Reply

Marsh Posté le 25-07-2002 à 11:11:58    

Je sais pas trop, mais de toute façon, les prix d'Oracle et SQL Server sont dispos sur le site d'Oracle et Microsoft de toute façon

Reply

Marsh Posté le 25-07-2002 à 12:23:17    

Au fait, via une conexion ODBC, il n'y a pas moyen quand-même d'utiliser une base Access sans partager le répertoire?

Reply

Marsh Posté le 25-07-2002 à 12:23:17   

Reply

Marsh Posté le 28-07-2002 à 11:42:15    

Harkonnen a écrit a écrit :

Il est tout à fait possible d'utiliser MySQL en VB, via ADO. Pour ça il te faut un driver ODBC pour MySQL (MyODBC par exemple), puis tu devras créer une DSN correspondant à ta base. Une fois tout ceci fait, tu es paré !
 
Exemple de code :

Code :
  1. Dim cnnConn as adodb.connection
  2. Dim objRec as adodb.recordset
  3. Set cnnConn = new adodb.connection
  4. Set objRec  = new adodb.recordset
  5. cnnConn.connectionstring = "DSN=MysqlODBC"
  6. objRec.open "SELECT ................", cnnConn


c'est tout con...
 
 




 
Voila j'ai suivi les indications et j'ai entré le code, mais lors de l'exécution du prog VB, j'ai un plantage à la ligne:
 ObjRec.Open "Select * from utilisateur", CnnConn
 
Message: "Operation is not allowed on an object refferencing a closed or invalid connexion"
 
Pourtant tout me semble normal...
 
(j'ai essayé avec la même chaine de connexion pour un controle data ado et là, ça fonctionne)
 
HELP PLEASE!!!


---------------
C17
Reply

Marsh Posté le 28-07-2002 à 14:02:52    

C17 a écrit a écrit :

Salut à tous,
 
J'aimerais savoir comment mettre en réseau une base de donnée access (.MDB) pour que les utilisateurs puissent avoir accés aux données sous un programme en VB mais ils ne peuvent pas avoir accès au fichier et au répertoire de la base sur le serveur...
 
Tout d'abord je voudrai savoir si cela est possible et si oui, comment je peux faire???
 
Merci d'avance!




 
En fait, c'est possible.

Reply

Marsh Posté le 28-07-2002 à 16:56:16    

latruffe a écrit a écrit :

 
 
En fait, c'est possible.




 
tu peux m'expliquer comment faire s'il te plait?


---------------
C17
Reply

Marsh Posté le 28-07-2002 à 18:01:12    

C17 a écrit a écrit :

 
 
tu peux m'expliquer comment faire s'il te plait?




 
Mince, désolé mais je pensais pas avoir posté ma réponse précédente sinon j'aurais un peu développer.
 
en fait, ce que je fais dans un cas comme le tiens, c'est que je crée un base contenant mes tables que je protège avec username + password.
 
Ensuite je crée une seconde base qui ne contient aucune tqble liée et qu'il n'est pas nécessaire de protéger. Cette base ne sert qu'à stocker des formulaires et du code vb.
 
Dans la première base, je définie les noms des utilisateurs ou du groupe ayant un accès (Exemple user : DeptVentes ; pass : xxx)
 
Dans la seconde base, je passe le username et le password via la déclaration de ma connection dans mon code visual basic : j'ai alors accès à toutes mes tables pour mes saisies/query.
 
L'avantage, c'est que si les utilisateurs peuvent ont accès au chemin de la base, ils ne connaissent pas le login/password qui leur permettrait d'ouvrir directement la base de données. Si en plus de ça tu bloques le code vba par un password; il ne peuvent plus retoruver le login/password d'origine.

Reply

Marsh Posté le 28-07-2002 à 18:41:50    

latruffe a écrit a écrit :

 
 
Mince, désolé mais je pensais pas avoir posté ma réponse précédente sinon j'aurais un peu développer.
 
en fait, ce que je fais dans un cas comme le tiens, c'est que je crée un base contenant mes tables que je protège avec username + password.
 
Ensuite je crée une seconde base qui ne contient aucune tqble liée et qu'il n'est pas nécessaire de protéger. Cette base ne sert qu'à stocker des formulaires et du code vb.
 
Dans la première base, je définie les noms des utilisateurs ou du groupe ayant un accès (Exemple user : DeptVentes ; pass : xxx)
 
Dans la seconde base, je passe le username et le password via la déclaration de ma connection dans mon code visual basic : j'ai alors accès à toutes mes tables pour mes saisies/query.
 
L'avantage, c'est que si les utilisateurs peuvent ont accès au chemin de la base, ils ne connaissent pas le login/password qui leur permettrait d'ouvrir directement la base de données. Si en plus de ça tu bloques le code vba par un password; il ne peuvent plus retoruver le login/password d'origine.




 
C'était pas vraiment ça ma question mais pour les mots de passe j'ai une autre soluce moins lourde
 
Je crée un petit prog de cryptage/decryptage de texte en vb (+- 10 lignes de code à tout casser)  
j'encode le mot de passe utilisateur et je le met dans un fichier ini dans le rep source du prog.
 
... Et dans mon prog je place l'algo de decryptage... Et le tour est joué!


---------------
C17
Reply

Marsh Posté le 28-07-2002 à 19:48:02    

Harkonnen a écrit a écrit :

MySQL a le gros avantage d'être gratuit pour une utilisation personnelle, et assez fiable pour des bases de taille moyenne (~2 Go). Par contre, il ne supporte pas certaines fonctionnalités (clés étrangères et sous requetes par exemple).
 
Après, ça dépend de ton budget et de la taille que tu estimes que ta base de données est susceptible d'atteindre. Et la tu as le choix entre Oracle et SQL Server.
 
Oracle est le meilleur SGBD, le plus fiable, le plus performant. SQL Server est bien aussi, mais à mon gout un poil plus lent qu'Oracle (la je sens que je vais faire grincer des dents :d). Niveau fiabilité, les 2 SGBD se valent, et tu pourras sans problème gérer de très grosses bases. Par contre, ils sont payants.
 
Reste Interbase, pas mal non plus, open source (coucou Vazkor :hello:) mais pas envisageable pour des très grosses bases à mon sens. Il entre dans la même catégorie que MySQL (patapai Vazkor :d)
 
Voila !




 
Oublies pas DB2 d'IBM...IBM est passé devant Oracle il n'y a pas longtemps au niveau des parts de marché ! Donc c'est que ca doit etre bien ( j'ai jamais essayé DB2 contrairement à Oracle 8i ou SQl Server.).


---------------
Dieu a cree l homme. Et ensuite, pour le remercier, l homme a cree Dieu.
Reply

Marsh Posté le 29-07-2002 à 10:45:13    

C17 a écrit a écrit :

 
 
C'était pas vraiment ça ma question mais pour les mots de passe j'ai une autre soluce moins lourde
 
Je crée un petit prog de cryptage/decryptage de texte en vb (+- 10 lignes de code à tout casser)  
j'encode le mot de passe utilisateur et je le met dans un fichier ini dans le rep source du prog.
 
... Et dans mon prog je place l'algo de decryptage... Et le tour est joué!




 
Ok mais l'avantage de cette methode, c'est que même si les utilisateur ont un accès à la base de donnée (ie au répertoire et au fichier), il ne peuvent pas l'ouvrir directement.
 
Ils sont obligés de passer via l'application VB que tu as définie.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed