IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Problème d'import sur base sécurisée [AC-2007]


Sujet :

Sécurité

  1. #1
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut Problème d'import sur base sécurisée
    Bonjour à Tous,

    Je bloque sur un pb qui doit être classique mais je n'arrive pas à m'en sortir...

    J'ai deux bases une frontale et une dorsale.
    Les deux sont sécurisées et pointent vers un mdw unique.

    Je tente de lancer depuis ma frontale une procédure d'import sur la dorsale.
    Je déclare donc un nouvel objet access et essaye d'ouvrir ma dorsale.

    Lorsque j'essaye de me connecter à ma dorsale le systeme me répond que je suis pas habilité et en effet en regardant le dbengine.systemdb je constate que c'est toujours le mdw par défaut qui est utilisé.

    l'idée derriere est d'accèder à mon nouvel objet application et de lancer l'import via un docmd.Transferttext.

    Y aurait-il une âme charitable qui pourrait m'aider, je suis preneur de toutes suggestions.

    Je rame la dessus depuis plus d'une semaine et cela devient critique pour moi.

    Merci par avance

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Je déclare donc un nouvel objet access et essaye d'ouvrir ma dorsale.
    C'est à dire ? Vous créez un nouvel objet DBEngine ?

    En fait, je ne comprend pas le principe. Vos tables de la dorsale sont déjà liées dans la frontale. Pour importer, il suffit de requêter

  3. #3
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    bonjour Tofalu,

    et bien tant que les bases n'était pas sécurisées je n'avais pas de souci

    le principe que j'appliquais était
    - création d'un nouvel objet application
    - ouverture de la base dorsale
    - suppression de la table ( plus rapide que de détruire tous les enregistrements
    - import via un format pré-enregistré
    -fermeture de la dorsale et de l'objet application

    Mais peut être qu'il y a plus simple

    Lorsque j'ai sécurisé les bases, il me fallait me connecter avec un user/mdp

    donc du coup j'ai essayé de créer un nouvel objet application
    création d'un nouvel espace dbengine avec les user et mot de passe adéquats et là je tombe sur mon pb de mdw

    en effet mes tables sont déjà liées à ma frontale
    mais avant de charger la table je la détruit pour aller plus vite

    Visiblement j'ai raté quelque chose dans ma compréhension du fonctionnement de la sécurité

    Peux tu m'aiguiller sur une manière de faire plus 'propre' ?

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Tu es sur le même fichier mdw, donc logiquement, tu devrais pouvoir utiliser le même workspace : donc pas besoin de nouvel objet application, tu devrais pouvoir directement ouvrir un nouvel objet Database.

  5. #5
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    d'abord merci encore de t’intéresser à mon cas

    En effet si je n'utilise pas de nouvel objet application j'arrive bien à créer mon espace.
    Mais ce que je voulais surtout c'est de pouvoir utiliser les docmd sur la nouvelle base ouverte car si je ne déclare pas de nouvel objet application c'est toujours ma base de départ qui est active.
    si je lance mes import depuis ma frontale, en passant par les tables attachées ne vais je pas rencontrer des problèmes de performance puisque je serai obligé de vider préalablement les tables?

    est ce que je me trompe

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    A priori, ce n'est pas possible de définir le fichier mdw en automation dès le départ.

    MSDN préconise de passer par la méthode Shell

    Utilisation d'un groupe de travail sécurisé

    Si l'application Microsoft Access que vous voulez contrôler utilise un groupe de travail sécurisé (System.mdv), vous voudrez peut-être contourner la boîte d'ouverture de session qui requiert un nom d'utilisateur et un mot de passe. L'exemple de code suivant utilise la fonction Shell()pour démarrer Microsoft Access et passer un nom d'utilisateur et un mot de passe à l'application :
    '----------------------------------------------------------------------
    'DÉCLARATIONS
    '----------------------------------------------------------------------

    Option Explicit Dim objAccess as Object

    '----------------------------------------------------------------------
    'Cette procédure définit une variable de niveau module, objAccess, comme
    'faisant référence à une instance de Microsoft Access. Le code tente tout
    'd'abord d'utiliser GetObject pour faire référence à une instance peut-être
    'déjà ouverte. Si aucune instance n'est 'ouverte, la fonction Shell() ouvre une
    'nouvelle instance et 'spécifie le nom d'utilisateur et le mot de passe, en se
    'basant sur les arguments passés à la procédure.
    '
    'Exemple d'appel : OpenSecured varUser:="Admin", varPw:=""
    '----------------------------------------------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     Sub OpenSecured(Optional varUser As Variant, Optional varPw As Variant)
        Dim cmd As String
        On Error Resume Next
        Set objAccess = GetObject(, "Access.Application")
        If Err <> 0 Then 'no instance of Access is open
          If IsMissing(varUser) Then varUser = "Admin"
          cmd = "C:\Program Files\Microsoft Office\Office\MSAccess.exe"
          cmd = cmd & " /nostartup /user " & varUser
          If Not IsMissing(varPw) Then cmd = cmd & " /pwd " & varPw
          Shell pathname:=cmd, windowstyle:=6
          Do 'Wait for shelled process to finish.
            Err = 0
            Set objAccess = GetObject(, "Access.Application")
          Loop While Err <> 0
        End If
     End Sub
    Reste à récupérer la bonne instance de l'application

  7. #7
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    J'avais vu ce morceau de code, mais ensuite j'ai galéré sur la gestion du getobject qui me sort systématiquement un dépassement de capacité.


    en fait j'ai contourné le problème, j'avais lu un post sur le sujet...
    Ma frontale reste avec la protection du mdw, et pour la dorsale j'utilise une protection de type mot de passe... ca à l'air de fonctionner

    dans tous les cas merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de sauvegarde sur base de données
    Par thunderpat dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/12/2007, 15h10
  2. Requête MS Query sur base sécurisée
    Par ajuveneton dans le forum Sécurité
    Réponses: 2
    Dernier message: 27/09/2007, 10h40
  3. bouton parcourir + import sur base de donnée
    Par mike2302 dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/05/2007, 14h49
  4. Problème dans Import de base
    Par glogla dans le forum Oracle
    Réponses: 3
    Dernier message: 22/11/2006, 14h05
  5. Réponses: 7
    Dernier message: 27/10/2006, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo