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

VB.NET Discussion :

Accès base de donnée hors domaine ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut Accès base de donnée hors domaine ?
    Bonjour,

    Pour notre entreprise j'ai développé une application en VB.NET qui se connecte sur une DB Access.
    Aucun problème, tout fonctionne bien...

    Mais, j'ai un utilisateur qui à ce message lors de la connexion :
    Le moteur de la base de donnée Jet ne peut pas ouvrir le fichier "blablabla.mdb". Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses données.

    J'imagine que l'accès est refusé car son PC n'est pas dans le domaine...
    Mais curieusement, si je vais manuellement ouvrir la base de donnée avec access, je n'ai aucun refus...

    Est-ce un problème de code?
    ou de base de donnée ?

    J'ai fouillé le net et je tombe chaque fois sur la même solution, via la gestion des accès sur la base, mais rien n'y fait....

    Quelqu'un aurait une idée ?

  2. #2
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Citation Envoyé par thovan Voir le message
    Il est déjà ouvert en mode exclusif par un autre utilisateur, ou vous devez avoir l'autorisation de visualiser ses données.
    Bonjour,
    J'ai créé une application qui utilise une petite base de données Access. Ce message apparait par exemple si tu modifie la base dans Access en mode exclusif pour faire par exemple des modifications de structure car cela impose que pendant ses modifications personne ne puisse modifier la base en simultané.
    Vérifie que personne ouvre la base en mode exclusif dans Access ou qu'un processus verrouille la base.

  3. #3
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Yep,

    Merci... mais ce n'est pas le cas...
    Les utilisateurs ne font que lire des données.

    Seulement à la connexion, je modifie l'une ou l'autre info genre champ boolean "connecté", string heure de connexion, ect ect....
    Mais aucune modification de structure.

    D'ailleurs pour dépanner, je lui fais tourner l'appli sur un bureau à distance sur un serveur....qui bien sur lui est dans le domaine...
    Je suis quasi sur que c'est le domaine le problème.

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    Bonjour,
    Ça va sans dire mais ça va mieux en le disant, ta base de données est configuré en mode partagé?

    D'autre part si le propriétaire {créateur} de la base de données se connect à la base via Access la base passe en mode exclusive {admin}.

  5. #5
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Oui, j'ai déjà testé...

    Et j'ai même ajouté son utilisateur directement avec full accès sur le fichier...

    Pour l'autre cas, ce n'est pas ça, aucun utilisateur n'a des soucis si je suis connecté aussi.

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonkour
    Il y a aussi dans la chaîne de connexion le "Mode"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connstring = provider & fonctions.GetDBPath() & ";Mode=Share Exclusive;User Id=admin;"
    Le "Mode" devrait le même pour tous users lambda.

    table des ConnectModeEnum constantes pour Mode :

    Constant Value Description
    adModeUnknown 0 Permissions cannot be set or determined
    adModeRead 1 Read-only
    adModeWrite 2 Write-only
    adModeReadWrite 3 Read and write permissions
    adModeShareDenyRead 4 Prevents other connections from having read permissions
    adModeShareDenyWrite 8 Prevents other connections from having write permissions
    adModeShareExclusive 12 Prevents opening other connections
    adModeShareDenyNone 16 Permits opening other connections with read/write permissions
    adModeRecursive 0x400000 Used in conjunction with the *ShareDeny* constants to set permissions on sub-records

    bon code....

  7. #7
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Ce n'est peut-être pas le cas, mais il arrive que des applications "Office", dont Access, lorsqu'elles sont manipulées via VB, ne libèrent pas tous les process qu'elles activent, par exemple à cause d'une instance non Dispose(), ou d'un fichier non Close().
    Il s'agit d'examiner les process du système pour vérifier s'il ne reste pas un ou plusieurs "Access" actifs alors que l'application est fermée. A noter que dans ce cas, le problème devrait disparaître après un Reboot du système.

    Autre point à vérifier, vu que le problème survient sur un PC et pas sur d'autres, voir si l'utilisateur possède les mêmes droits que les autres, notamment pour l'accès en modification au fichier .ldb. Dans ce cas, la suppression du fichier .ldb avant de lancer l'application devrait résoudre le problème (à condition toutefois que le user ait les droits sur le dossier de la .mdb).

    J'espère que ceci te donnera de bonnes pistes de recherche ...

  8. #8
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Hello,

    Merci pour la réponse, qui contient quelques pistes intéressantes.

    Ceci dit, les autres utilisateurs n'ont pas de soucis à se connecter alors que la DB est déjà ouverte par quelqu'un d'autre

    Mais, ce que tu dis au niveau des droits intéressant... vu que n'étant pas dans le domaine, elle n'hérite pas de droits de l'active directory...
    Peut-être qu'en la mettant admin local de sa machine ça marchera... je testerai.

    Mais ça n'explique pas pourquoi je peux sans problème parcourir le réseau et ouvrir la DB avec access depuis son poste

  9. #9
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Mais ça n'explique pas pourquoi je peux sans problème parcourir le réseau et ouvrir la DB avec access depuis son poste
    De son poste, avec son login, ce n'est pas possible ..., ou ton utilisateur "dégage des ondes maléfiques ..." .
    Mais de son poste avec ton login, c'est possible si tu possèdes des droits supérieurs aux siens.

  10. #10
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    non non, c'est bien de son poste avec son utilisateur !!


  11. #11
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Alors là, une seule solution : un prêtre exorciste.

    Ou bien, suivre pas à pas (en détail, touche après touche, click après click, ...) les manœuvres de l'utilisateur : il y a forcément quelque chose qu'il fait différemment de toi.

  12. #12
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    C'est jeté direct au login
    Je ne sais rien suivre à partir pop le message d'erreur...

    Je suis quasi certain que c'est parce qu'elle n'est pas dans le domaine...

    Mais, la mettre dans le domaine effacerait tous ses fichiers locaux.... (dixit mon collègue infra) et elle gère les affaires perso du boss........
    LOL !

  13. #13
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Quelle est ta méthode de connexion ?

  14. #14
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Ultra classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                Dim myconnexion As OleDbConnection = New OleDbConnection
                Dim provider As String
                Dim connstring As String
                provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
                connstring = provider & fonctions.GetDBPath()
                myconnexion.ConnectionString = connstring
                myconnexion.Open()
    la DB n'est par ailleurs même pas protégée par login/mot de passe !

  15. #15
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut
    connstring = provider & fonctions.GetDBPath() & ";User Id=admin;Password=;" peut être
    de plus
    myconnexion.CursorLocation = 3 avant myconnexion.Open()
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  16. #16
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Selon ton dernier message, il faudrait que l'administrateur de cet ordinateur donne les droits d'accès en contrôle total pour permettre l'installation correcte de l'application.
    Il est aussi possible que cela fonctionne mieux avec "Exécuter en tant qu'Administrateur".


  17. #17
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut


    ça ne change rien du tout...

    depuis le réseau : lancer le setup en admin : accès refusé
    copie locale : lancer le setup en admin : ok.... connexion à la DB : niet !

  18. #18
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    C’est surtout qu’avec les bons outils c’est mieux.
    Access n’est pas une base réseau comme sql server (la version express étant gratuite).
    Ajouté à cela qu’un dossier partagé est considéré comme une faille de sécurité par certains.
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Membre expérimenté
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Par défaut
    Yep,
    J'ai déjà pensé à migrer vers une SQL Server mais.... ceci va demander de grosses adaptations de code et j'ai des tonnes de projets en parallèle

    Je bosse sur une refonte totale du truc, en C# dans laquelle j'intégrerai SQL Server... un jour.... lointain.... dans une autre galaxie.

    Et puis... si tu voyais notre audit de sécurité....
    Le partage du dossier en public est loiinnnnn d'être notre priorité

Discussions similaires

  1. Accès Base de données Access
    Par vincent magnin dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/06/2006, 12h09
  2. Problème accès base de données
    Par alainconnu dans le forum Outils
    Réponses: 3
    Dernier message: 27/04/2006, 09h31
  3. [PHPMyAdmin] Accès base de donnée pour utilisateur
    Par nicodeme dans le forum Outils
    Réponses: 2
    Dernier message: 04/03/2006, 01h10
  4. [C#]Global.asax et accès base de données.
    Par R'SKaP dans le forum ASP.NET
    Réponses: 13
    Dernier message: 26/01/2006, 15h00
  5. [Kylix] Kylix et accès Base de données
    Par Oyoboy dans le forum EDI
    Réponses: 16
    Dernier message: 22/06/2004, 16h41

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