Eibert 0 Geschrieben 1. Dezember 2021 Melden Teilen Geschrieben 1. Dezember 2021 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 Zitieren Link zu diesem Kommentar
cj_berlin 1.349 Geschrieben 1. Dezember 2021 Melden Teilen Geschrieben 1. Dezember 2021 Ini-Dateien, Registry, kleiner binärer Blob... Zitieren Link zu diesem Kommentar
Eibert 0 Geschrieben 1. Dezember 2021 Autor Melden Teilen Geschrieben 1. Dezember 2021 Verstehe nicht? Zitieren Link zu diesem Kommentar
cj_berlin 1.349 Geschrieben 1. Dezember 2021 Melden Teilen Geschrieben 1. Dezember 2021 Was genau willst Du denn erreichen? Ich dachte, Du willst den Connection String oder die Zugangsdaten irgendwo hinterlegen, so dass sie nicht hard-coded im Quellcode Deiner Software enthalten sind. Zitieren Link zu diesem Kommentar
Dukel 457 Geschrieben 1. Dezember 2021 Melden Teilen Geschrieben 1. Dezember 2021 (bearbeitet) Viele Software fragen bei der Installation (oder einer speziellen Funktion) die SQL Credentials ab. Diese kann man dann (verschlüsselt) mit einer der oben genannten Möglichkeiten speichern. bearbeitet 1. Dezember 2021 von Dukel Zitieren Link zu diesem Kommentar
Eibert 0 Geschrieben 2. Dezember 2021 Autor Melden Teilen Geschrieben 2. Dezember 2021 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 Zitieren Link zu diesem Kommentar
cj_berlin 1.349 Geschrieben 2. Dezember 2021 Melden Teilen Geschrieben 2. Dezember 2021 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. Zitieren Link zu diesem Kommentar
NilsK 2.969 Geschrieben 2. Dezember 2021 Melden Teilen Geschrieben 2. Dezember 2021 (bearbeitet) 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 2. Dezember 2021 von NilsK Zitieren Link zu diesem Kommentar
mwiederkehr 385 Geschrieben 2. Dezember 2021 Melden Teilen Geschrieben 2. Dezember 2021 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. Zitieren Link zu diesem Kommentar
NilsK 2.969 Geschrieben 2. Dezember 2021 Melden Teilen Geschrieben 2. Dezember 2021 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 Zitieren Link zu diesem Kommentar
Eibert 0 Geschrieben 2. Dezember 2021 Autor Melden Teilen Geschrieben 2. Dezember 2021 Hallo, danke für die Antworten. Dann werde ich eine interne Anmeldung schreiben, die ich auf eine Tabelle beziehe. Hat noch jemand einen Tip oder Tutorial für mich wegen der Verschlüsselung der Passwörter? Gruß Udo Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.