Um die Verwendung einer Anwendung, die ich entwickle, zu protokollieren, brauche ich jeden Benutzer, der meine Anwendung verwendet, um Abfragen für meine SQL Server-Datenbank mit ihren eigenen Anmeldeinformationen auszuführen.Wie erteile ich die Erlaubnis, einen anderen Benutzer zu IMPERSONIEREN?
Um nicht ihre Passwörter in einer abrufbaren Weise zu speichern, kann ich keine Verbindung auf einer Benutzerbasis erstellen (weil das dazu führen würde, ihr Passwort hinter dem kurzen Fenster zu kennen, wenn sie sich einloggen). Die offensichtlich scheinende Lösung für dieses Problem (die möglicherweise nicht optimal ist) besteht darin, alle vertraulichen Abfragen als generischer Benutzer "Anwendung" auszuführen, der sich als angemeldeter Benutzer ausgibt (ich muss nur den angemeldeten Benutzer zuordnen) mit einem Benutzernamen ... was keine schlechte Sache ist).
Mein Problem ist, dass ich nicht sicher bin, wie man allen Benutzern einer bestimmten Rolle oder allen Benutzern im Allgemeinen die Identität zuerkennt (nicht die hellste Idee, weil ich nicht möchte, dass sich die App zum Beispiel als Systemadministrator ausgibt)).
grant impersonate on all to ApplicationLogin
nicht funktioniert, und es gibt keine Dokumentation, die ich finden kann, dass schlägt vor, auf die Mitglieder einer Rolle Identitätswechsel gewähren würde machbar sein ...
Irgendwelche Ideen?
Bedeutet eine bestimmte Rolle Datenbankrolle? –
sicher, solange es ein wirklich breiter sein kann. – Crisfole
Hinzugefügt einige Details^ – Crisfole