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 26/09/2011, 18h43   #1
Membre habitué
 
Inscription : janvier 2006
Messages : 99
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2006
Messages : 99
Points : 101
Points : 101
Par défaut Interdire l'accès direct aux tables mais pas via les formulaires

Bonjour,

J'ai une application qui nécessite que l'accès direct aux tables doit être interdit aux utilisateurs (hors administrateur).
Seule la lecture/modification/suppression est autorisée via les formulaires. En gros, je veux forcer les utilisateurs à ne passer que par les écrans pour accéder aux données.
La solution auquelle je pensais était la suivante : j'active la sécurité Access. Je supprime tous les accès en lecture/écriture aux tables à tous les utilisateurs (hors administrateurs). A l'ouverture des formulaires, je transfère l'utilisateur dans le groupe des utilisateurs, et à la fermeture je le supprime de ce groupe.
Pour le moment, je me trouve confronté à 2 soucis :
1) J'ai mis mon code à l'ouverture du formulaire, mais j'ai une erreur au moment de l'ajout au groupe des Administrateurs (ligne en rouge).
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Form_Open(Cancel As Integer)

    Dim Wrk As Workspace
    Dim Usr As DAO.User
    Dim Grp As DAO.Group
   
    Set Wrk = DBEngine.Workspaces(0)
   
    With Wrk
        Set Usr = .Users(Application.CurrentUser)
        Set Grp = .Groups("Admins")
        Usr.Groups.Append Grp    
    End With

End Sub
2) Le code à l'ouverture ne s'exécute pas car j'ai le message "Impossible de lire les enregistrements, pas d'autorisation sur la table XXXX", ce qui veut dire que mon code n'a même pas le temps de s'exécuter.

Est-ce que quelqu'un pourrait me souffler quelques trucs pour résoudre mon souci ? Voire, me suggérer carrément une autre solution à ma problématique.

merci d'avance !
Aegnor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h52   #2
Membre habitué
 
Inscription : janvier 2006
Messages : 99
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2006
Messages : 99
Points : 101
Points : 101
Bon, j'ai compris mon erreur de code. Il fallait écrire :
Code :
1
2
3
4
5
6
 
    With Wrk
        Set Usr = .Users(Application.CurrentUser)
        Set Grp = Usr.CreateGroup("Admins")
        Usr.Groups.Append Grp    
    End With
Par contre je me rends compte qu'il faut avoir le droit d'administrer pour changer les autorisations d'accès, ce qui revient à donner tous les droits aux utilisateurs. Ce qui n'est pas ce que je veux. Du coup ma problématique reste entière.

Est-ce que quelqu'un aurait une idée pour interdire l'accès aux tables en direct tout en laissant un accès aux données via les formulaires ?
Aegnor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 10h22   #3
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 089
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 089
Points : 11 622
Points : 11 622
Bonjour,

Je pense qu'avant de se lancer dans la sécurité ACCESS il vaut mieux comprendre comment cela fonctionne.

Il y a justement un tuto qui explique tout :

http://loufab.developpez.com/tutoriels/access/securite/

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h40.


 
 
 
 
Partenaires

Hébergement Web