Hi,
Ich versuche aus einem Programm heraus auf eine Datenbank zuzugreifen, die über eine MDW-datei gesichert ist. Das Programm ruft dementsprechend auch mit einem angepassten Connection String die Datenbank auf. Hier kurz der Code in groben Zügen:
[highlight=vbnet]
Class dbAccess
Inherits clsDatabase
BaseCon As OleDbConnection ' eigentlich ein Array von Verbindungen, aber die Verwaltung hier darzustellen wäre zu umfangreich und führt an der Frage vorbei
Public Sub New(connectionString As String)
Mybase.New(connectionString) ' speichert connectionString in Objekt
End Sub
Public Function Open() As Boolean
BaseCon = New OleDbConnection(MyConnStr)
If BaseCon Is Nothing Then Return False
BaseCon.Open()
End Sub
Public Sub Close()
BaseCon.Close()
End Sub
End Class
session.IniConnectionString = "Provider='Microsoft.Jet.OLEDB.4.0';Data Source='\\f225033W\Users\Dietz\QS.mdb';Persist Security Info=true;Jet OLEDB:System Database='\\f225033W\Users\Dietz\QS-System.mdw';User ID='testUser';Password='Test';"
Public Sub TestDBConnection
Dim MyDb As New dbAccess(session.IniConnectionString)
If Not MyDb.Open() Then
ShowError("Fehler beim Verbinden mit Datenbank")
Return
End If
Dim s As String = "SELECT Count(*) FROM Messtab"
Dim Anzahl As Integer = MyDb.sqlGetLng(s)
Debug.Print(Anzahl)
MyDB.Close()
End Sub
[/highlight]
Arbeite ich nun unter meiner Kennung läuft alles ohne Probleme, wechsele ich im Programm aber die Identität auf einen Funktionsuser (damit mir nicht jeder Toolanwender, der wegen der ldb Schreibzugriff auf das Verzeichnis braucht, die Datenbank löschen kann), erhalte ich beim BaseCon.Open() einen Unspecified Error.
Der Impersonated User hat Vollzugriff sowohl auf die MDB, die MDW als auch auf das Verzeichnis, in dem die Dateien sind, trotzdem erhalte ich diesen Fehler. Muss mein Funktionsuser auf sonst noch etwas berechtigt werden, oder kann ein Funktionsuser (ohne Benutzerprofil) gar nicht auf eine Access-Datenbank zugreifen?
Gruß
Martin
Ich versuche aus einem Programm heraus auf eine Datenbank zuzugreifen, die über eine MDW-datei gesichert ist. Das Programm ruft dementsprechend auch mit einem angepassten Connection String die Datenbank auf. Hier kurz der Code in groben Zügen:
[highlight=vbnet]
Class dbAccess
Inherits clsDatabase
BaseCon As OleDbConnection ' eigentlich ein Array von Verbindungen, aber die Verwaltung hier darzustellen wäre zu umfangreich und führt an der Frage vorbei
Public Sub New(connectionString As String)
Mybase.New(connectionString) ' speichert connectionString in Objekt
End Sub
Public Function Open() As Boolean
BaseCon = New OleDbConnection(MyConnStr)
If BaseCon Is Nothing Then Return False
BaseCon.Open()
End Sub
Public Sub Close()
BaseCon.Close()
End Sub
End Class
session.IniConnectionString = "Provider='Microsoft.Jet.OLEDB.4.0';Data Source='\\f225033W\Users\Dietz\QS.mdb';Persist Security Info=true;Jet OLEDB:System Database='\\f225033W\Users\Dietz\QS-System.mdw';User ID='testUser';Password='Test';"
Public Sub TestDBConnection
Dim MyDb As New dbAccess(session.IniConnectionString)
If Not MyDb.Open() Then
ShowError("Fehler beim Verbinden mit Datenbank")
Return
End If
Dim s As String = "SELECT Count(*) FROM Messtab"
Dim Anzahl As Integer = MyDb.sqlGetLng(s)
Debug.Print(Anzahl)
MyDB.Close()
End Sub
[/highlight]
Arbeite ich nun unter meiner Kennung läuft alles ohne Probleme, wechsele ich im Programm aber die Identität auf einen Funktionsuser (damit mir nicht jeder Toolanwender, der wegen der ldb Schreibzugriff auf das Verzeichnis braucht, die Datenbank löschen kann), erhalte ich beim BaseCon.Open() einen Unspecified Error.
Der Impersonated User hat Vollzugriff sowohl auf die MDB, die MDW als auch auf das Verzeichnis, in dem die Dateien sind, trotzdem erhalte ich diesen Fehler. Muss mein Funktionsuser auf sonst noch etwas berechtigt werden, oder kann ein Funktionsuser (ohne Benutzerprofil) gar nicht auf eine Access-Datenbank zugreifen?
Gruß
Martin