Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2006, 09h57   #1
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
Par défaut sécurité base sur réseaux

Bonjour

je cherche un moyen de bien sécurisé la base de donnée.

En frontal et sur chaque poste est déployé un mde.
Ce mde a des liaisons sur un mdb situé sur un répertoire partagé du réseaux:

\\srv-appl\data\access\leprojetenquestion\base.mdb

Par ailleurs ils utilisent un mdw (\\srv-appl\data\access\machin.mdw) pour s'authentifier, mais je dois reconnaitre que la gestion des droits via ce truc est pénible.
Comment ne pas passer par ca?

Quel droits mettre sur ce repertoire pour qu'il puisse utiliser (lecture/ecriture) la base sans pour autant permettre à un petit malin d'attaquer la base access (s'il a access sur son poste) en direct ou pire de la piquer?


merci à tous
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 10h35   #2
Membre habitué
 
Avatar de Jahprend
 
Étudiant
Inscription : juin 2006
Messages : 255
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 255
Points : 131
Points : 131
Envoyer un message via MSN à Jahprend
Perso j'ai eu ce problème pour mon stage et je vais te donner de quoi la protéger contre la copie (sachant que ca n'evite pas les imprime-écran et les photo):

Etape 1 : Modifié la macro de lancement d’ACCESS qui s’appelle AutoExec





Etape 2 : Créer un module contenant un programme en Visual Basic for Application permettant cette fonctionnalité

Code :

Function start()

Dim p
p = "C:\WINDOWS\Bureau\Commandessay.mdb" // ici on rentre l’adresse de la BDD
If Not (p = Application.CurrentDb.Name) Then // Si “A n’est pas égal à B” alors fermer
Application.Quit

End If
End Function






Etape 3 : Lancer ce module à l’ouverture en le mettant en première position du déroulement



Ici, on met la commande ExecuterCode avec pour argument start() ce qui fait que lorsqu’on voudra ouvrir ce fichier hors du serveur, la fonction va se lancer et le fichier ne pourra ni être ouvert ni modifié et donc impossible de récupérer les données des tables.
Jahprend est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h00   #3
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
avec le shift le gars passe qd même dans ce cas?
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h14   #4
Membre habitué
 
Inscription : mai 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 182
Points : 107
Points : 107
Bonjour,

Citation:
Envoyé par LostIN
avec le shift le gars passe qd même dans ce cas?
Effectivement, dans ce cas, il faut penser à désactiver la touche MAJ.
Devil-Atomic666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h16   #5
Membre habitué
 
Avatar de Jahprend
 
Étudiant
Inscription : juin 2006
Messages : 255
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 255
Points : 131
Points : 131
Envoyer un message via MSN à Jahprend
Oui c vrai mais faut deja qu'il sache que ca le desactive...

PS:Comment on desactive la touche maj???
Jahprend est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h19   #6
Membre habitué
 
Inscription : mai 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 182
Points : 107
Points : 107
Citation:
Envoyé par Jahprend
Comment on desactive la touche maj???
Un petit tour dans la FAQ s'impose
Devil-Atomic666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h22   #7
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
le coup du shift, faut pas prendre les utilisateurs pour des c..
ca se trouve facilement

donc pour inhiber le shift il y a ca:
Citation:
Sub SetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
End Sub
Sub UnSetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, True
End Sub

Function ChangeProperty(strPropName As String, varPropType As Long, varPropValue As Variant) As Integer
Dim dbs As Database, prp As Variant
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then ' Propriété non trouvée.
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' --Erreur inconnue.
Resume Change_Bye
End If
End Function

ca marche bien, même trop, car après plus moyen d'ouvrir la base !!!!
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h26   #8
Membre habitué
 
Avatar de Jahprend
 
Étudiant
Inscription : juin 2006
Messages : 255
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 255
Points : 131
Points : 131
Envoyer un message via MSN à Jahprend
ok mais on l'as met ou ta fonction?
Jahprend est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h27   #9
Membre habitué
 
Inscription : mai 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 182
Points : 107
Points : 107
Citation:
Envoyé par LostIN
ca marche bien, même trop, car après plus moyen d'ouvrir la base !!!!
D'où l'utilité de la Sub UnSetBypassProperty qui permet de réactiver l'ouverture avec la touche maj...
Devil-Atomic666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h28   #10
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
je l'ai mis dans un module

je l'ai executé dans le débogage
ca tourne, puis après plus moyen de lancer l'appli.

donc oui, on l'a met où, et sous quel condition on l'execute ????
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h31   #11
Membre habitué
 
Avatar de Jahprend
 
Étudiant
Inscription : juin 2006
Messages : 255
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 255
Points : 131
Points : 131
Envoyer un message via MSN à Jahprend
Je crois que je vais prendre le risque de mettre ce programme et de faire buger, je me dit que ma pprotection est deja suffisante
Jahprend est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h32   #12
Membre habitué
 
Inscription : mai 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 182
Points : 107
Points : 107
Personnellement, j'ai mis ça dans un module. Ensuite, j'ai remplacer :
Code :
1
2
3
4
5
6
7
8
Sub SetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
End Sub
Sub UnSetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, True
End Sub
par :
Code :
1
2
3
4
5
6
7
8
Function SetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
End Function
Function UnSetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, True
End Function
De cette manière, je peux exécuter SetBypassProperty et UnSetBypassProperty à partir de macros.
Devil-Atomic666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h36   #13
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
je pige pas.

et la macro après ?


une fois le shift désactivé comment tu rentres ?
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h42   #14
Membre chevronné
 
Inscription : décembre 2005
Messages : 710
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 710
Points : 772
Points : 772
Salut,

Regarde ce post sur la sécurité niveau utilisateur, il est trés bien fait : ici
(c'est un peu compliqué à utiliser pour la première fois, mais une fois le principe compris, ça va tous seul ou presque)

Ensuite pour interdire la touche shift regarde

(prévoir un endroit dans la base qui redonne la possibilité d'activé la touche shift, genre un doubleclick sur un endrois particulier)

Enfin, le fait de vérifier au démarrage que le fichier n'a pas bougé ne te protège de .... rien en fait :
- il faut aussi protéger les données et la solution proposée par Jahprend ne "protège" que le frontal
- même une base "protégée" avec cette solution ne sera que trés peu sécurisée : ce n'est qu'au démarrage que ce code est exécuté, tu peux toujours depuis une autre base venir lire les objets de la base.


La seule méthode qui te permet de protéger les données et le frontal d'une base Access, c'est la gestion du MDW.
Il y a déjà pas mal de post sur le sujet, et ce que j'en retiens c'est que la gestion de la sécurité au niveau utilisateur (données et frontal) reste incontournable. Toutes autres solutions ne fera que rendre les choses plus compliquées pour une personne malveillante, mais ne la bloquera pas. Au mieux on empèche le néophite de "bidouiller", mais pas le programmateur averti !

Bien sûr dans certains cas c'est suffisant (tout dépend du besoin de sécurité que l'on a en fonction de la base, des données, des personnes suceptible d'avoir accés à la base ...) , mais il ne faut pas croire qu'autre chose que l'utilisation d'un MDW pourra vraiment sécuriser une application.

En tout cas c'est ce que j'ai retenu des mes lectures et expériences.

A+
Muhad'hib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h44   #15
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
c'est dejà pas mal mais pas suffisant.

Ca n'empeche pas d'importer tous les elements depuis une autre base.

et concernant l'accès au répertoire ?
J'aurais envie de privilégié cette piste.

Pas d'accès (juste pour access) et là, on ne rissque rien du tout.

je vais parcourir tes liens.

merci
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 11h47   #16
Membre chevronné
 
Inscription : décembre 2005
Messages : 710
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 710
Points : 772
Points : 772
Voici un exemple de code utilisant la fonction présenté dans la FAQ sur la gestion de la touche MAJ :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub Image0_DblClick(Cancel As Integer)
Dim Wks As Workspace
Dim Grp As Group
Dim I As Integer
Dim test As Boolean
On Error GoTo Err_Image0dblClik
test = False
I = 0
'verif si currentuser est dans groupe DEVELLOPEUR
 
Set Wks = DBEngine(0)
Set Grp = Wks.Groups("DEVELOPPEUR")
Do
    If Grp.Users(I).Name = CurrentUser Then
        test = True
        Exit Do
    End If
    I = I + 1
Loop
Fin_de_boucle:
If test = True Then
    If CurrentDb.Properties("AllowBypassKey") = False Then
        fChangeProperty "AllowBypassKey", 1, True
        MsgBox "La propriété ""AllowBypassKey"" est Vrai. Redémarer l'appli pour pouvoir interrompre le code" & vbCrLf & "Ne pas oublier de la remettre à Faux avant de créer le MDE"
    Else
        fChangeProperty "AllowBypassKey", 1, False
        MsgBox "La propriété ""AllowBypassKey"" est a nouveau Fausse. Redémarer l'appli pour redre la modif effective" & vbCrLf & "Ne pas oublier de faire un MDE avant de distrubuer les modifications"
    End If
End If
Quitter:
Set Wks = Nothing
Set Grp = Nothing
Exit Sub
 
Err_Image0dblClik:
If Err.Number <> 3265 Then fError Err.Number, Err.Description, "Image0_DblClick", Me.Name
 
GoTo Quitter
 
 
End Sub
Si un utilisateur du groupe "DEVELOPPEUR" dblclick sur l'image on autorise la touche MAJ si elle était interdite, et on l'interdit si elle était autorisée.

A+
Muhad'hib est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 12h21   #17
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
merci Muhad'hib

sécurité à ce niveau là réglé.

Coté réseau, je ne le sens pas du tout.
Je vois pas comment, le répertoire pourrait permettre la lecture/ecriture dans la base, et bloquer l'utilisateur d'y rentrer en naviguant dans les répertoires.

à moins que???

Le groupe sécurité ne nous tente absolument pas. Trop rigide et pas assez souple.
En admettant que l'on utilise ce truc.

Normalement de chez lui (s'il part avec la base) il ne pourra pas rentrer ?(faudrait qu'il prenne le mdw aussi?

Est ce qu'un utilisateur qui part avec la base sous le bras, pourra importer les éléments de celle ci depuis une autre base?
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 13h09   #18
Membre habitué
 
Avatar de Jahprend
 
Étudiant
Inscription : juin 2006
Messages : 255
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 255
Points : 131
Points : 131
Envoyer un message via MSN à Jahprend
Dans mon cas , j'ai a faire a des neophites et de plus il doivent tous avoir acces a la lecture et l'eciture des données donc a la lecture de la structure..
Jahprend est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 13h23   #19
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
pour verrouiller ou deverrouiller la touche shift utilise le fichier en download ici... Justement tu l'ouvres avec la touche shift because y'a un form de demarrage et ensuite tu modifies le pointage vers la base dans les 2 modules. Ca fonctionne nickel et je remercie LedZepp au passage pour ce bon plan !
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2006, 13h26   #20
Membre éclairé
 
Inscription : juin 2006
Messages : 402
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : juin 2006
Messages : 402
Points : 307
Points : 307
Citation:
Envoyé par Muhad'hib
Voici un exemple de code utilisant la fonction présenté dans la FAQ sur la gestion de la touche MAJ :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub Image0_DblClick(Cancel As Integer)
Dim Wks As Workspace
Dim Grp As Group
Dim I As Integer
Dim test As Boolean
On Error GoTo Err_Image0dblClik
test = False
I = 0
'verif si currentuser est dans groupe DEVELLOPEUR
 
Set Wks = DBEngine(0)
Set Grp = Wks.Groups("DEVELOPPEUR")
Do
    If Grp.Users(I).Name = CurrentUser Then
        test = True
        Exit Do
    End If
    I = I + 1
Loop
Fin_de_boucle:
If test = True Then
    If CurrentDb.Properties("AllowBypassKey") = False Then
        fChangeProperty "AllowBypassKey", 1, True
        MsgBox "La propriété ""AllowBypassKey"" est Vrai. Redémarer l'appli pour pouvoir interrompre le code" & vbCrLf & "Ne pas oublier de la remettre à Faux avant de créer le MDE"
    Else
        fChangeProperty "AllowBypassKey", 1, False
        MsgBox "La propriété ""AllowBypassKey"" est a nouveau Fausse. Redémarer l'appli pour redre la modif effective" & vbCrLf & "Ne pas oublier de faire un MDE avant de distrubuer les modifications"
    End If
End If
Quitter:
Set Wks = Nothing
Set Grp = Nothing
Exit Sub
 
Err_Image0dblClik:
If Err.Number <> 3265 Then fError Err.Number, Err.Description, "Image0_DblClick", Me.Name
 
GoTo Quitter
 
 
End Sub
Si un utilisateur du groupe "DEVELOPPEUR" dblclick sur l'image on autorise la touche MAJ si elle était interdite, et on l'interdit si elle était autorisée.

A+

je reviens la dessus.

avec une base mde(comprenant requete,forms, modules, etat) déployé chez les utilisateurs où les tables sont liées
à une base mdb (contenant que les tables).
Si j'enlève le shift du mdb, comment je vais pouvoir le remettre (vu que je n'ai que les tables)?

C'est possible de le faire depuis une autre appli? c ca?

Désolé pour ces questions de newbie.
LostIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h05.


 
 
 
 
Partenaires

Hébergement Web