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 18/07/2008, 11h04   #1
Invité de passage
 
Inscription : juillet 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5
Points : 0
Points : 0
Par défaut Err 3111 Création tables impossibles

Bonjour,

J'ai crée une base protégée par un mdw avec des droits utilisateurs défini pour chaque objet de la base. Tout va bien tout marche nickel.

Un nouveau besoin de l'appli, me conduit à connecter à la demande une table liée.
Le code que j'ai mis en place fonctionne pour moi (administrateur), par contre pour l'utilisateur lambda, j'ai une erreur 3111, création impossible, vous n'avez pas les droits de modifier la structure...

POURTANT DANS OUTILS/SECURITE/AUTORISATION D'ACCES/TABLE, les utilisateurs en question sont ADMINISTRATEUR sur <NOUVELLES TABLES/REQUETES>

Je ne comprend donc pas cette erreur, pouvez-vous m'aider?

Cdt,
fanfan71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 23h37   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
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 098
Points : 11 624
Points : 11 624
Les droits d'administration doivent être fixé sur l'utilisateur et non sur un groupe. Il n'y a pas d'héritage sur les droits d'administration.

Remarque que tu peux également créer la table par code (vba ou sql) dans ce cas peut importe l'utilisateur.

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
Vieux 21/07/2008, 10h52   #3
Invité de passage
 
Inscription : juillet 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5
Points : 0
Points : 0
J'ai tenté avec les droits administrateurs (au niveau table:ajouter table/requete:administrer) sur un utilisateur pour test, mais ca ne marche pas non plus.

J'utilise le code suivant pour lier mes tables, code, qui fonctionne très bien avec mon compte admin.
Par contre avec un utilisateur lambda avec les droits administration sur AJOUTER TABLES aussi bien dans son groupe qu'au niveau de l'utilisateur lui-meme, ca ne fonctionne pas, j'ai toujour l'erreur 3111, ca plante au niveau de l'APPEND.
Il arrive bien a suprimmer la liaison, mais pas à la recréér.

De même, à la mano, une création de table ne marche pas non plus pour un utilisateur lambda.

Qu'est-ce qui merdouille?

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
42
43
44
45
Sub Liaison_Table_Reseau(nom_schema As String)
On Error GoTo Err_Liaison_Table_Reseau
 
    Dim errObj As Error
    Dim rst As Recordset
    Dim tbl, tbl2 As TableDef
    Dim logon_util, mdp_util As String
    'Dim doc As DAO.Document, lngPerms As Long
 
    SysCmd acSysCmdSetStatus, FORMAT(Time, "hh:mm:ss") & "; " & "Attachement des tables du schéma " & nom_schema
 
    DoCmd.Hourglass True
 
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM MesTABLES")
    If Not rst.EOF Then rst.MoveFirst
    While Not rst.EOF
 
        For Each tbl In CurrentDb.TableDefs
 
            If tbl.NAME = rst!NomTABLE Then 'existe = True
                CurrentDb.TableDefs.Delete tbl.NAME
            End If
 
        Next tbl
 
        Set tbl2 = CurrentDb.CreateTableDef(rst!NomTABLE)
        tbl2.connect = "ODBC;UID=" & logon_util & ";PWD=" & mdp_util & ";DSN="
 
tbl2.SourceTableName = nom_schema & "." & rst!NomTABLE
 
        CurrentDb.TableDefs.Append tbl2
 
        SysCmd acSysCmdSetStatus, "Attachement de la table " & nom_schema & "." & rst!NomTABLE
        rst.MoveNext
    Wend
 
    SysCmd acSysCmdClearStatus
 
    DoCmd.Hourglass False
 
    Exit Sub
 
Err_Liaison_Table_Reseau:
    MsgBox "Erreur dans Liaison_Table_Reseau : " & err.Number & "- " & err.DESCRIPTION
End Sub
fanfan71 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2008, 21h58   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 098
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 098
Points : 11 624
Points : 11 624
Normal !

Avec ce type de code (connect) tu dois mettre un mot de passe et un user qui a les bonnes permissions.

Mets le pass et le user admin en dur dans le code.

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
Vieux 22/07/2008, 11h00   #5
Invité de passage
 
Inscription : juillet 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5
Points : 0
Points : 0
Merci pour t'être penché sur mon probleme.
La connexion est écrite en dure, j'ai juste viré les info pour le post, mais y a bien la connexion en dure dans le code, je suis pas doué mais quand meme.
Désolé de t'avoir induit en erreur.

Comme je le disais dans mon précedent post, le code fonctionne avec mon login administrateur, mais meme à la mano, cad, en me connectant sur ma version de dev avec le login et le profil d'un utilisateur lambda et en tentant "a la souris" de créer une table, j'ai la meme erreur.

J'ai fait des tests comparatifs:
J'ai créé un groupe temporaire avec tout les droits sur tous les objets de la base (administrer / outil / sécurité), de sorte à reproduire un groupe de travail similaire au groupe de travail "administrateurs", cad, celui auquel appartient mon login.
J'ai mis un utilisateur en test dans ce groupe: CA MARCHE PAS NON PLUS.
Meme chose Err: 3111.
Pourtant le groupe de travail à accès à tout.


Pour que ca fonctionne, il faut que je déplace l'utilisateur dans le groupe de travail "Administrateurs".
L'objectif étant d'avoir une base sécurisée, c'est pas la manip à faire.

Je cherche donc à optimiser mon code pour faire la manip.
fanfan71 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 21h41.


 
 
 
 
Partenaires

Hébergement Web