andreashoster
Goto Top

Erstellen von ODBC DSN inklusive User und Passwort Angabe

Muß eine System DSN mit User / Passwort Angabe erzeugen und es klappt nicht. Ziel Datenbank auf MS SQL Server 2000. Client: Win XP

Es ist soweit, ich muß auch mal ein Frage stellen:

Ich brauche eine ODBC System DSN inklusive Angabe von Username / Passwort. Das Programm welches das benötigt stammt nicht von mir, daher muß User/Passwort angegeben werden.
Manuell über den ODBC Administrator ist es möglich.
Ich habe schon folgendes versucht:

1. Direktes Schreiben der Einträge in die Registry HKLMSoftwareODBCODBC.INI, geht für Trusted_Connection, aber ich kriege damit keine User/Passwörter rein.
Habe auch den Beitrag Datenquelle (ODBC) für SQL-Server per BAtch eintragen Datenquelle (ODBC) für SQL-Server per BAtch eintragen gelesen, funktioniert aber nicht (vermutlich mag der SQL 2000 Treiber keine Passwörter in der Registry)

2. Mittels ODBCCONF.EXE
Trusted Connection tut mal wieder:
odbcconf /A {CONFIGSYSDSN "SQL Server" "DSN=TEST|Server=Server1|Database=UserTemp|Description=Test|Trusted_Connection=yes"}
Der Versuch User/Passwort mitzugeben scheitert mit Ungültige SchlüsselwortWerte Paare:
odbcconf /A {CONFIGSYSDSN "SQL Server" "DSN=TEST|Server=Server1|Database=UserTemp|Description=Test|Trusted_Connection=no|UID=Test|pwd=Test"}

3. Über die ODBC API:
      Option Explicit

      'Constant Declaration  
      Private Const ODBC_ADD_DSN = 1        ' Add data source  
      Private Const ODBC_ADD_SYS_DSN = 4    ' Add system data source  
      Private Const ODBC_CONFIG_DSN = 2     ' Configure (edit) data source  
      Private Const ODBC_REMOVE_DSN = 3     ' Remove data source  
      Private Const vbAPINull As Long = 0&  ' NULL Pointer  

      'Function Declare  

          Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _  
          (ByVal hwndParent As Long, ByVal fRequest As Long, _
          ByVal lpszDriver As String, ByVal lpszAttributes As String) _
          As Long
Private Sub Command1_Click()

          Dim intRet As Long
      Dim strDriver As String
      Dim strAttributes As String

      'Set the driver to SQL Server because it is most common.  
      strDriver = "SQL Server"  
      'Set the attributes delimited by null.  
      'See driver documentation for a complete  
      'list of supported attributes.  
      strAttributes = "SERVER=Server1" & Chr$(0)  
      strAttributes = strAttributes & "DESCRIPTION=TEST Datenbank" & Chr$(0)  
      strAttributes = strAttributes & "DSN=TestDB" & Chr$(0)  
      strAttributes = strAttributes & "DATABASE=UserTemp" & Chr$(0)  
      strAttributes = strAttributes & "Trusted_Connection=no" & Chr$(0)  
      strAttributes = strAttributes & "UID=Test" & Chr$(0)  
      strAttributes = strAttributes & "PWD=Test" & Chr$(0)  
      'To show dialog, use Form1.Hwnd instead of vbAPINull.  
      intRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_SYS_DSN, _
      strDriver, strAttributes)
      If intRet Then
          MsgBox "DSN Created"  
      Else
          MsgBox "Create Failed"  
      End If

End Sub
Trusted_Connection tut auch hier, aber User/Passwort mal wieder nicht.
Ich habe auch schon statt UID/PWD (obwohl die stimmen müssten, beim Connection String bei einer DSN losen Verbindung heißt es so), Login, UserID, User, Password etc. in allen möglichen Kombinationen verwenden, es ändert nichts.

Prinzipiell muß es aber über die API doch gehen, schließlich nimmt der ODBC Admin doch auch die API, oder nicht?

Alternativ, wenn mir jemand sagt, wie ich bei einer Trusted Connection es hinbekomme, daß für den SQL Server es so aussieht als ob der Zugriff von User Test kommt würde das auch helfen.
Einfach einen neuen DB Benutzer hinzufügen mit DB Namen Test geht aber nicht, weil es gibt ja schon einen User Test. Und den vorhandenen kann ich nicht löschen, weil er Besitzer von zig Tabellen etc. ist.

Gruß,
Andreas

Nachtrag: Ich habe es auf gelöst gesetzt, nicht weil ich es hinbekommen hätte, aber weil ich die Software soweit bekommen habe, selber User und Passwort mitzugeben.

Content-Key: 63877

Url: https://administrator.de/contentid/63877

Ausgedruckt am: 29.03.2024 um 11:03 Uhr