MS-SQL-Server Benutzer db_owner erforderlich?

Perlmann

Mitglied
Hallo zusammen,

ich habe folgende Frage:

Mit einer Access-MDB verlinke ich mit einer Autoverlinkungsprozedur(*) via ODBC auf eine MS-SQL-Server-Datenbank und erhalte die Tabellen als dbo_tabelle.
Der Benutzer ist mit db_owner-Rechten eingetragen.

Frage: Ist es für alle Benutzer dieser MDB erforderlich als db_owner in der Benutzerliste der Datenbank des SQL-Server eingetragen zu sein?


(*) hier die Autoverlinkungsfunktion:
Code:
Function ConnectDB(ByVal strODBC As String, strDatabase As String) As Boolean
'Die Abfrage im Code bewirkt, dass die Systemtabellen, die beim SQL-Server / SQL-Server Express 2005 angelegt werden nicht mit importiert werden.


Call DeleteAllLinkedTables


'strODBC ist der Name der ODBC-Verbindung
'strDatabase ist der Name der Datenbank
    
    Dim db As DAO.Database
    Dim t As Integer
    ConnectDB = False
    If IsNull(strODBC) Or IsNull(strDatabase) Then Exit Function
    On Error Resume Next
'    Set db = DBEngine.OpenDatabase(strODBC, dbDriverNoPrompt, True, _
'                                   "ODBC;DATABASE=" & strDatabase & _
'                                   ";DSN=" & strODBC & ";pwd=password")
    Set db = DBEngine.OpenDatabase(strODBC, dbDriverNoPrompt, False, _
                                   "ODBC;DATABASE=" & strDatabase & _
                                   ";DSN=" & strODBC)
    If Err = 0 Then ConnectDB = True
    For t = 0 To db.TableDefs.Count - 1
        If Left(db.TableDefs(t).Name, 7) <> "dbo.sys" And _
           Left(db.TableDefs(t).Name, 4) <> "sys." And _
           Left(db.TableDefs(t).Name, 8) <> "dbo.qry_" And _
           Left(db.TableDefs(t).Name, 8) <> "dbo.isp_" And _
           Left(db.TableDefs(t).Name, 8) <> "dbo.test" And _
           Left(db.TableDefs(t).Name, 11) <> "INFORMATION" Then
            DoCmd.TransferDatabase acLink, "ODBC-Datenbank", _
                                   "ODBC;DSN=" & strODBC & ";DATABASE=" & _
                                   strDatabase, acTable, _
                                   db.TableDefs(t).Name, _
                                   Right(db.TableDefs(t).Name, _
                                         Len(db.TableDefs(t).Name) - 4)
            If Err <> 0 Then
                ConnectDB = False
                Err = 0
            End If
        End If
    Next t
    db.Close
End Function

Vielen Dank
Phil
 
Zurück