Jump to content

SQL Benutzer sa für Softwareanmeldung verwenden?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich möchte gerne eine Datenbankgestützte Software schreiben.

Die Software sollte über eine Datenbankverbindung verfügen.
Der Connectionstring besteht ja bei der Serverauthentifizierung aus Benutzername und Passwort.

Kann ich diese in den Loginprozess der Software mit integrieren?
Theoretisch müsste das ja funktionieren. Aber wie kann ich über Programmcode das Passwort den User ändern?

 

Gruß Udo

Link zu diesem Kommentar

Hallo,

 

erst mal Danke für die Hilfe.

Vielleicht muss ich mich anders ausdrücken.

 

Es gibt ja bereits eine Userverwaltung im SQL.

Diese möchte ich gerne in meiner Software verwenden.

Sprich einen Benutzer auf den SQL Server anlegen mit Standardpasswort das dann der User bekommt.

Beim 1. Anmelden muss er dann das Passwort ändern.

 

Wie könnte ich das lösen.

Geht ja nur über SQL oder?

 

Gruß Udo

Link zu diesem Kommentar

Moin,

Du kannst die Userverwaltung auch selbst schreiben und nur die Credentials in der SQL-Datenbank Deiner Anwendung speichern. Aber klar, kannst auch SQL-Logins anlegen, aber dann muss Deine Software gegenüber SQL mit securityadmin-Rechten agieren, was nicht unproblematisch ist.

Alternative: wenn Deine Software auf Umgebungen ausgerichtet ist, wo ein Active Directory normalerweise für Authentifizierung sorgt, kannst Du einfach diese Authentifizierung nutzen - sie würde ja dann auch gegenüber SQL funktionieren.

Link zu diesem Kommentar

Moin,

 

Typischerweise geht das so: bei der Installation der Software gibt man an, welches der Datenbankserver ist. Hier erfolgt dann einmalig eine Anmeldung mit passenden Rechten, um die Datenbank anzulegen.

 

Wenn dann ein Anwender mit der Software arbeitet, zeigt ihm diese ein Anmeldefenster, mit dem er sich mit seinen eigenen Account bei der Datenbank anmeldet. Die Software speichert also normalerweise nur, um welchen Server es geht.

 

In vielen Frameworks zur Softwareentwicklung sind die Funktionen für sowas auch schon vorhanden.

 

Gruß, Nils

bearbeitet von NilsK
Link zu diesem Kommentar

Falls die Software Benutzerberechtigungen abbilden muss und die Datenbank schützenswerte Informationen enthält, solltest Du Dir überlegen, den Zugriff vom Client nicht direkt auf die Datenbank zu machen, sondern einen Dienst (zum Beispiel Web Service) dazwischen zu schalten. Denn in SQL selbst lassen sich komplexere Zugriffsrechte nur schwer abbilden. "User X hat keinen Zugriff auf Tabelle t_buchhaltung" geht, aber "jeder Benutzer sieht Details nur bei seinen Projekten und kann Stunden nur auf aktive Projekte buchen" ist schwierig. Es geht, wenn man den direkten Zugriff auf Tabellen nicht erlaubt und alles über Stored Procedures abfragt/ändert, aber zumindest ich implementiere solche Sachen lieber im Code als im SQL.

 

Ich erwähne das, weil ich in der Praxis immer wieder Software sehe, die das nicht so macht: man kann komplexe Berechtigungen vergeben, aber wenn man Access aufmacht und den SQL Server anhängt, hat man Vollzugriff auf die gesamte Datenbank.

Link zu diesem Kommentar

Moin,

 

da hast du natürlich völlig recht. Für mich klang die Anfrage des TO nach dem ersten Einstieg in so ein Thema, aber möglicherweise steckt ja mehr dahinter. 

 

Ich deklariere meine vorige Antwort also um, sie ist nur für einfache Fälle gültig. Für höhere Anforderungen sollte man auf eine moderne indirekte Architektur setzen, wie von @mwiederkehr skizziert.

 

Gruß, Nils

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...