Ich entwickle gerade eine kleine Datenbankanwendung, für die wir in der nächsten Zeit den Zugriff auf mehrere Benutzer planen.So implementieren Sie die Datenbankzugriffssteuerung auf Zeilenbasis
Die Datenbank enthält hauptsächlich Projekte (in einer Projekttabelle) mit einigen verbundenen Tabellen, die zusätzliche Informationen enthalten.
Eine Anforderung unserer Kunden in Bezug auf Multi-User-Operationen ist eine fein abgestufte Zugriffskontrolle, die hauptsächlich auf Projektebene basiert (d. H. Benutzer haben nur Zugriff auf einige Projekte). Ich frage mich, wie ich das umsetzen kann.
Was die Situation etwas schwieriger macht, ist, dass der Datenbankzugriff hauptsächlich in einer selbstentwickelten Persistenzschicht erfolgt, die die benötigten SQL-Abfragen (ähnlich wie nhibernate) erstellt.
Die einzige Lösung, die ich finden könnte, ist die Implementierung von gespeicherten Prozeduren (oder Sichten für Lesezugriff?) In der Datenbank, die die Zugriffsprüfungen implementieren. Da unsere derzeit Persistenz-Schicht auf Tabellen auf vollen Zugang beruht würde dies bedeuten, eine Leseansicht, einen Einsatz und ein Löschbefehl für jede Tabelle implementieren und die Persistenz-Schicht ändern, um diese Befehle zu verwenden (anstelle INSERT des Konstruierens/DELETE-Abfragen) .
Ich frage mich, ob es gibt eine andere Lösung erfordert nicht unseren Code zu ändern ...