Office: Benutzer DSN per VBA erstellen

Helfe beim Thema Benutzer DSN per VBA erstellen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hi Leute, da ich auf mehreren Rechnern die gleiche Benutzer-DSN zu einem SQL Server erstellen muss, würde ich das gerne automatisch machen lassen. Das... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Marke, 14. November 2015.

  1. Benutzer DSN per VBA erstellen


    Hi Leute,

    da ich auf mehreren Rechnern die gleiche Benutzer-DSN zu einem SQL Server erstellen muss, würde ich das gerne automatisch machen lassen.
    Das Anlegen verläuft ohne Probleme, nur übernimmt es mir kein Username und Passwort... *frown.gif*

    Code:
    Code:
    Ich würde gerne die SQL-Server_authentifizierung mit Benutzername und -pw verwenden (siehe angehängtes Bild). Diese aber auch automatisch mit dem Code mitgeben... aber das klappt so bisher nicht...

    Hätte jemand ne Idee?

    :)
     
  2. In deiner Funktion AddDSN werden die Paramter sUser und sPwd komplett ignoriert und stattdessen ein TRUSTED_CONNECTION=True in den Connectionstring eingesetzt.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  3. oh, mist, stimmt!
    Danke sonic8!

    aber wie spreche ich dann die felder user und pw an? einfach auf false setzen hat nicht funktioniert...
     
  4. Benutzer DSN per VBA erstellen

    Ich verstehe nicht ganz, was du meinst.
    Ich würde die Daten im ConnectionString unterbringen, wie vorher das TRUSTED_CONNECTION=True.
    Sei dir aber bewusst, dass die Zugangsdaten dann unverschlüsselt abgelegt werden.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  5. Ok, ich muss zugeben: Ich bin noch relativ neu in der Materie VBA und SQL...
    Ich will mir mit diesem Skript das manuelle einrichten einer User-DSN ersparen und einfach das einmal auf jedem Rechner ausführen, auf dem diese DSN eingerichtet werden soll.

    Das funktioniert mit diesem Skript auch soweit, nur bekomme ich den User und das PW nicht eingetragen, sprich ich müsste trotzdem in die systemsteuerung\Verwaltung\Datenquellen und das da eingeben... genau das will ich vermeiden *wink.gif*
     
  6. Andre.Heisig, 16. November 2015
    #6
  7. Hi Andre,

    genau daher habe ich das meiste des Codes...

    aber das funktioniert nicht, weder...
    Code:
    noch ...
    oder solche Varianten.

    Es bringt in diesem Fall immer den Fehler "DSN konnte nicht erstellt werden".
    Bei:
    Code:
    wird zwar eine erstellt, aber kein Passwort oder User übernommen....

    ich bin etwas überfragt...
     
  8. Benutzer DSN per VBA erstellen

    also ich komme immer noch nicht wirklich weiter.
    Habe aber es möglichst benutzerfreundlich gestaltet:

    - Erstellen der DSN nur ohne PW
    - Ausgeben einer MsgBox mit PW und Erklärung wo es eingetragen werden muss
    - öffnen der ODBC-Verwaltung direkt aus dem Code heraus

    Code:
    Sprich man klickt auf einen Button und muss dann in der sich öffnenden ODBC-Verwaltung nur noch das PW eintragen.


    Ist jetzt nicht optimal, aber schon einmal ein Anfang.

    Falls jemand noch eine weitere Idee hat, gerne schreiben *wink.gif*
     
  9. Hallo,
    ich verstehe nicht, warum du Anmeldenamen und Passwort in die DSN aufnehmen willst/musst. Ist eigentlich nur ein unnötiges Sicherheitsproblem.

    Je nachdem wie du die Verbindung anwendest kannst du doch Nutzer und Passwort beim manuellen Verknüpfen der Tabellen speichern oder per Code mitgeben.
     
    Steffen0815, 17. November 2015
    #9
  10. das Problem ist, dass ich das in meiner Firma hier machen muss und das Programm recht groß ist.

    Das heißt:

    - es sollte möglichst einfach von jedem Mitarbeiter, der dies benutzen muss, eingerichtet und auch nur von diesen benutzt werden können (Bei Einbau in den Code könnte jeder der diesen Access-Client hat auch darauf zugreifen).

    - es beinhaltet rund 300 SQL-Server Passthrough-Anfragen für die ich das nicht alle einstellen will ...

    Das ist so ein bisschen der Hintergrund der ganzen Geschichte *wink.gif*
     
  11. Ein paar Anmerkungen:
    1.) Ich glaube nicht, dass es möglich ist, eine SQL-Server-DSN mit gespeicherten Passwort anzulegen per Code/API. Das war zwar mal möglich und steht auch noch so als Beispiel in der Doku zu den API Funktionen, aber ich vermute Microsoft hat das aus Sicherheitsgründen entfernt.

    2. ) Dass du nur ein Window Handle aus Access an die API übergeben musst und sich dann der ODBC-Verbindungsdialog direkt für die neu erstelle Verbindung öffnet, weißt du?

    3.) Hast du mal überprüft, ob es überhaupt möglich ist das Passwort manuell einzutragen und zu speichern? - Ich denke auch das ist nicht mehr möglich (Win 8.1), weil Sicherheitsrisiko.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  12. Ist dann ein Kennwort, das lesbar in den DSN-Daten gespeichert ist (falls das überhaupt geht), der richtige Weg?

    Zum Verständnis:
    Du verwendest einen einzigen Sql-Server-User für alle Clients und die Anwender sollen dieses Kennwort nicht kennen.
    Du verwendest somit keinen SQL-Server-Zugang je Anwender.
    Stimmt das so?

    Nur so als Idee:
    Was wäre, wenn du einen Login-Vorgang in eine Public Prozedur in einer mde/accde auslagerst, die mde als Verweis einbindest (auch Latebinding wäre möglich) und dann beim Anwendungsstart die Prozedur aus der mde startest, um den Zugang freizuschalten.

    Dann könntest du die SQL-Server-Objekte DSN less (oder auch mit DSN, je nach Gechmack) ohne Kennwort verknüpfen und erst nach Aufruf der Prozedur wird der Zugang möglich.


    Anm.: die Benutzerdaten würde ich nie in den verknüpften Tabellen oder Pass-Through-Abfragen speichern, da das Kennwort sonst zu einfach auslesbar ist.

    mfg
    Josef
     
  13. Benutzer DSN per VBA erstellen

    Verwende Windows Authentifizierung auf dem SQL Server und das Problem ist sicher gelöst.

    Klar. Musst du auch nicht. Wenn du einmal eine Verbindung hergestellt hast, werden alle weiteren Verbindungen, mit dem gleichen ConnectionString, automatisch mit den gleichen Benutzerdaten geöffnet.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  14. \@sonic8:

    zu 1) nachdem was ich bisher hierzu gefunden habe, ist es sehr wahrscheinlich, dass das nicht mehr funktioniert... da hast du recht.

    zu 2) *eek.gif* ok, damit hast du mich überfordert *wink.gif*

    zu 3) manuell funktioniert das noch, verwende hier aber auch noch win 7.


    @josef P.

    Soweit korrekt.

    Berechtigte Frage. Ich beantworte das mal so: Es wird den Mitarbeitern hier nicht zugetraut das zu finden. *wink.gif*

    Zu allem anderen: Hört sich gut an, ich verstehe nur leider fast nichts davon... Bin noch recht neu in der Welt des SQL und VBA und hangle mich von einem Thema zum nächsten. *redface
     
Thema:

Benutzer DSN per VBA erstellen

Die Seite wird geladen...
  1. Benutzer DSN per VBA erstellen - Similar Threads - Benutzer DSN VBA

  2. OneNote Clipper benutzen

    in Sonstiges
    OneNote Clipper benutzen: Hallo, ich bin bislang kein OneNote-Nutzer, würde jetzt aber gerne den OneNote Clipper testen. Wenn ich mich dort mit meinem Firmenaccount anmelde, kommt die Meldung: Administratorgenehmigung...
  3. Auslesen Windowsbenutzer in einer Datenbank

    in Microsoft Access Hilfe
    Auslesen Windowsbenutzer in einer Datenbank: Hallo zusammen, wie kann ich auslesen, welcher Windows Benutzer gerade aktuell in einer Datenbank ist? Geht das? Danke Matthias
  4. Für ein Excel Dokument Seriendruck benutzen.

    in Microsoft Excel Hilfe
    Für ein Excel Dokument Seriendruck benutzen.: Hallo Leute, auf der Arbeit braucht es täglich 40 Kopien von einem Excel Dokument, Varianten im Datum, der Adresse und zwei oder drei anderen Feldern. Ist ein sehr hübsches Dokument, das nach...
  5. Onedrive Pivot Mehrere Benutzer Aktualisieren

    in Microsoft Excel Hilfe
    Onedrive Pivot Mehrere Benutzer Aktualisieren: Hallo zusammen, Ich habe eine eine Excel Datei mit mehreren Tabellen in Onedrive hochgeladen. Darunter u.a. pivot Tabellen welche aktualisiert werden müssten um in einem anderem Sheet etwas...
  6. Tabelle mit mehreren Benutzern gleichzeitig bearbeiten

    in Microsoft Excel Hilfe
    Tabelle mit mehreren Benutzern gleichzeitig bearbeiten: Hallo zusammen, Wir haben in der Firma Office 2016 Professionell drauf. Jetzt habe ich eine Tabelle über Onedrive freigegeben weil ich schauen wollte, ob dann mehrere Benutzer gleichzeitig darin...
  7. Zugriff auf shared Postfach über Thunderbird

    in Microsoft Outlook Hilfe
    Zugriff auf shared Postfach über Thunderbird: Hallo Leute, Ich habe folgende Frage: Ich bin ehrenamtlich in einem Verein tätig, der seine EDV jetzt auf Office365 umgestellt hat, und auch die Mail-Adressen jetzt über office365 verwaltet. Unter...
  8. Anzeigen von Änderungen für alle Nutzer der Mappe

    in Microsoft Excel Hilfe
    Anzeigen von Änderungen für alle Nutzer der Mappe: Hallo zusammen, bei Excel gibt es die Funktion "Änderungen Nachverfolgen". Ich habe die Excelmappe für andere Bearbeiter freigegeben (aus Gründen nicht über die Cloudfunktion) und diese Funktion...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden