[OLE Jet (access)] Foutmelding bij database

Pagina: 1
Acties:

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15-02 21:11
Ik heb een webapplicatie gemaakt die gebruik maakt van een access database. Deze access database heeft 2 gebruikers. Nou heb ik de volgende connection string:
code:
1
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpriv\wwwroot\Waterproef\Backend\Backend.mdb;User Id=xxx;Password=xxx;OLE DB Services=-1;

Het probleem is dat dit een foutmelding veroorzaakt:
System.Data.OleDb.OleDbException: Cannot start your application. The workgroup information file is missing or opened exclusively by another user.
Alle rechten staan goed, de gebruikersnamen kloppen ook maar ik lees veel op andere sites dat het iets te maken heeft met een system.mdw of iets dergelijks. Ik begrijp er niets van!

Waarom moet ik in vredesnaam naar één of ander vaag bestand verwijzen terwijl dat niets met mijn database te maken heeft? Of is dat Microsoft logica? Ik ben vooral benieuwd naar praktische oplossingen want er is een hoop technisch gedoe op een aantal websites waar ik niet uit kom.

Hopelijk kan iemand mij helpen :).

Verwijderd

Als je nog invloed kan uitoefenen op de database-keuze zou ik in plaats van Access kiezen voor een oplossing als MSDE (gratis) of (bij voorkeur) SQL Server Express 2005 (gratis onder voorbehoud) voor je RDBMS behoeftes. Dat gaat je hoop cryptische meldingen van dergelijke aard schelen. ;)

[ Voor 10% gewijzigd door Verwijderd op 30-06-2006 21:53 ]


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15-02 21:11
Ik zou ook liever SQL server gebruiken, maar helaas behoort dat niet tot de mogelijkheden. Misschien later, maar voorlopig niet. Een andere optie is uiteraard het wachtwoord verwijderen, maar dat houd ik als laatste redmiddel.

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15-02 21:11
Iemand nog tips :?.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 15-02 21:52

TeeDee

CQB 241

• Heb je het Access bestand geopend als je aan het testen bent
• Is het Acces bestand password protected? Het kan wel eens schelen om de Connstring aan te passen.
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
Dim oOleDbConnection As OleDb.OleDbConnection
Dim strPassword As String = "password"
Dim strDataBasePath as string = "c:\project\database.mdb"

Dim sConnString As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strDataBasePath & ";" & _
"Jet OLEDB:Database Password=" & strPassword & ";"

oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()  

bovenstaande code ergens gevonden ;)

Hoe ziet je connection string er nu uit?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Met een beetje google kun je hetvolgende vinden:

http://msdn.microsoft.com...adonet/html/odatanet2.asp
http://support.microsoft.com/?kbid=839782

Je moet dus een workgroup aanmaken en daarnaar verwijzen.

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15-02 21:11
TeeDee schreef op dinsdag 04 juli 2006 @ 10:39:
• Heb je het Access bestand geopend als je aan het testen bent
Nee.
• Is het Acces bestand password protected? Het kan wel eens schelen om de Connstring aan te passen.
Visual Basic .NET:
1
snip

Hij is password protected, maar dan op user-niveau en niet op database-niveau. Die beveiliging is ook de oorzaak van de problemen.
Hoe ziet je connection string er nu uit?
Zie startpost.
PhysicsRules schreef op dinsdag 04 juli 2006 @ 10:47:
Met een beetje google kun je hetvolgende vinden:

http://msdn.microsoft.com...adonet/html/odatanet2.asp
http://support.microsoft.com/?kbid=839782

Je moet dus een workgroup aanmaken en daarnaar verwijzen.
Okay, ik hoef dus niet één of andere system.mdw te traceren. Ik vond je linkjes erg handig en ik ga er gelijk mee aan de slag als ik thuis ben. Hopelijk gaat het dan lukken. Bedankt!

[ Voor 19% gewijzigd door Dennis op 04-07-2006 11:02 ]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 03-02 12:37

pjvandesande

GC.Collect(head);

Zit er een Database wachtwoord op?

  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 22-12-2025

PhysicsRules

Dux: Linux voor Eenden

Dennis schreef op dinsdag 04 juli 2006 @ 11:01:
[...]

Nee.

[...]

Hij is password protected, maar dan op user-niveau en niet op database-niveau. Die beveiliging is ook de oorzaak van de problemen.

[...]

Zie startpost.

[...]

Okay, ik hoef dus niet één of andere system.mdw te traceren. Ik vond je linkjes erg handig en ik ga er gelijk mee aan de slag als ik thuis ben. Hopelijk gaat het dan lukken. Bedankt!
Succes :)

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Dennis schreef op dinsdag 04 juli 2006 @ 11:01:
[...]
Hij is password protected, maar dan op user-niveau en niet op database-niveau. Die beveiliging is ook de oorzaak van de problemen.
[...]
Okay, ik hoef dus niet één of andere system.mdw te traceren.
Dus wel. In het MicrosoftDatabaseWorkgroup bestand wordt informatie opgeslagen over gebruikers en groepen en hun bijbehorende SIDs. In de de database zelf wordt opgenomen welke SID wat kan en mag met de database. Als je database naar behoren is beveiligd moet je het mdw bestand opsnorren dat is gebruikt bij het beveiligen van de database. Vervolgens geef je in de connectiestring aan waar de jet engine de gebruikersinformatie kan vinden door het juiste mdw bestand te vermelden.
Waarom moet ik in vredesnaam naar één of ander vaag bestand verwijzen terwijl dat niets met mijn database te maken heeft? Of is dat Microsoft logica?
offtopic:
Beetje onzinnige uitval naar Microsoft. Dat jij niet snapt hoe het jet beveiligingsmodel werkt is nog geen reden om te concluderen dat gevraagd wordt 'naar een of ander vaag bestand dat niets met je db van doen heeft'

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15-02 21:11
questa schreef op dinsdag 04 juli 2006 @ 11:02:
Zit er een Database wachtwoord op?
Dennis schreef op dinsdag 04 juli 2006 @ 11:01:
Hij is password protected, maar dan op user-niveau en niet op database-niveau. Die beveiliging is ook de oorzaak van de problemen.
Nee dus, geen database wachtwoord maar gebruikers :).

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 15-02 21:11
Niesje schreef op dinsdag 04 juli 2006 @ 12:53:
Dus wel. In het MicrosoftDatabaseWorkgroup bestand wordt informatie opgeslagen over gebruikers en groepen en hun bijbehorende SIDs. In de de database zelf wordt opgenomen welke SID wat kan en mag met de database. Als je database naar behoren is beveiligd moet je het mdw bestand opsnorren dat is gebruikt bij het beveiligen van de database. Vervolgens geef je in de connectiestring aan waar de jet engine de gebruikersinformatie kan vinden door het juiste mdw bestand te vermelden.
Okay. Dus de informatie die ik nu reeds heb aangemaakt is opgeslagen in mijn eigen system.mdw (als ik het goed begrijp). Door naar tools->security->... te gaan moet ik zorgen dat dat in een los bestand komt wat ik vervolgens kan gebruiken in de connection string. Klopt dat wat ik nu zeg?
offtopic:
Beetje onzinnige uitval naar Microsoft. Dat jij niet snapt hoe het jet beveiligingsmodel werkt is nog geen reden om te concluderen dat gevraagd wordt 'naar een of ander vaag bestand dat niets met je db van doen heeft'
offtopic:
Daar heb je gelijk in. Ik vind echter wel dat het beveiligingsmodel nergens goed wordt uitgelegd en dan nog vind ik het model niet echt logisch. Maar dat is mijn mening :P.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

In access2003 is het werkgroepbeheer te benaderen via het menu beveiliging. Vorige versies hadden nog een apart programma wrkgadm.exe meegeleverd. Start het werkgroepbeheer en je ziet welk mdw bestand access default in gebruik heeft, maar let op: als de database met een snelkoppeling wordt gestart kan daar een afwijkend mdw bestand worden meegegeven.

IIg moet je dat werkgroepbestand kopieren en meegeven aan je connectionstring.

offtopic:
Zo raar is het niet om gebruikersinformatie centraal op te slaan en de machtigingen per object. Windows doet navenant hetzelfde: één SAM met gebruikers en ID's, en rechten worden per object vastgelegd. Verschil is alleen dat je bijzonder makkelijk van gebruikersdatabase (mdw) kunt wisselen.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1