none
Sichere Verbindung zur Datenbank & deren Konfiguration RRS feed

  • Frage

  • Hey,

    ich möchte mal eine grundsätzliche Frage stellen. Bisher verbinde ich meine Datenbank immer mit SQL Authentifizierung, also mit Benutzername und Passwort.

    Für unterschiedliche Anwendungen habe ich auf der Datenbank jeweils einen eigenen Login/Benutzernamen angelegt und dort die Berechtigungen gemanagt. Das hat den Vorteil, dass wenn eine App nur Lesezugriff auf eine Tabelle braucht, ich auch nur diese für das Projekt freigeben kann.

    Nachteil ist, dass ich im Connection String dann aber auch Username und Passwort angeben muss und das ist ja sicherheitstechnisch nicht so optimal, da auslesbar.

    Daher interessiert mich der Rat der "Experten". Wie macht Ihr das? Ich habe viel über die Windows-Authentifizierung gelesen, weiß aber nicht, wie ich dann mit dem Sql Managementstudio auch die Berechtigungen entsprechend anlegen kann um diese dann auf die App anzupassen. Ich finde aber im Web auch keinen Einstieg, der mir das leicht erklärt.

    Wie wird der User dann gehandhabt? Meldet sich die App mit einem Benutzernamen bei der DB an oder wird vom Benutzer der App irgendwas übertragen?

    Wie geht man da richtig vor?

    LG


      


    .::datekk::.

    Samstag, 20. Juli 2019 09:44

Antworten

  • Bei einer Webapplikation stellst du den Benutzer für die Webseite ein und dann geschieht der Datenbankzugriff über genau diesen Benutzer:

    • Neuen Windows-Benutzer auf dem Webserver anlegen (z.B. [MeinServer]\WebUser01)
    • Neues Login für [MeinServer]\WebUser01 im SQL Server anlegen und der entsprechenden Datenbank zuordnen/Berechtigungen geben

    ConnectionString

    Server=MeinServer;Database=MeineDB;Trusted_Connection=True;

    Bei einer Windows-Applikation wird die Anwendung wird die Anwendung üblicherweise im Context des gerade angemeldeten Benutzers ausgeführt; dann müsste dieser als Login im SQL Server konfiguriert sein. Windows bietet aber auch die Möglichkeit über (Shift?)Rechtsklick und dann 'Ausführen als...' um eine Anwendung eben als anderer benutzer auszuführen.
    Der ConnectionString bleibt dann wie oben.

    Bei Windows-Applikationen sehe ich da nicht so sehr den Nutzen; zudem befindet sich die App.Config mit dem ConnectionString ja zusammen mit der Applikation irgendwo unter C:\Programme\... und ist üblicherweise nur mit Admin-Rechten einsehbar also auch schon mal 'ein bisschen' sicher. Du kannst die Daten in App.Config auch Verschlüsseln; damit habe ich allerdings keine Erfahrung. Mehr dazu fndest du hier. Damit solltest du dann wirklich recht sicher sein :)
    Bei WebAnwendungen macht sowas schon mehr Sinn; da man hier einzelne Webanwendungen wirklich komplett im Context eines Benutzers laufen lassen kann.

    Montag, 22. Juli 2019 05:57