SQL server Authorization / Security Frage

Wir haben ein C # Framework gebaut, dass alle dataänderungen unserer database durchlaufen sollten. Wir wollen nicht, dass irgendjemand data direkt in die database umwandelt. Alle Änderungen müssen durch unseren Rahmen gehen.

Meine Frage ist, wie dies durchzusetzen? Wie können wir SQL server nur erlauben Insert / Update / Delete-statementen, die aus unserem Framework gemacht werden, und nicht jeder von potenziell Hunderte von Personen, die über SSMS oder ein anderes Tool verbunden sein könnten?

Ich habe nicht viel Erfahrung mit SQL server security / authentication, also brauche ich eine Richtung auf diesem.

Vielen Dank.

Erstellen Sie eine SQL-Anmeldung für Ihre Anwendung und gewähren Sie permissions für gespeicherte Prozeduren oder Basistabellen – was auch immer Ihre Bedürfnisse sind.

Erlaube keinen Zugang zu jemand anderem.

Aber Sie erwähnen ein "Framework", was bedeutet, dass viele Anwendungen und Benutzernamen es verwenden werden … also vielleicht brauchen Sie einen anderen Ansatz.

Ihr Framework sollte auf SQL unter seinen eigenen Anmeldeinformationen zugreifen, ob es sich um ein SQL-Login oder ein Domänenkonto handelt, auf dem das Framework läuft. Erteilen Sie die entsprechenden SQL-permissions für dieses Konto.

Ein path wäre durch die Verwendung von Triggern und Überprüfung entweder app_name, host_name

if app_name() in('SQL Query Analyzer','Microsoft SQL server Management Studio') raiserror (.....) return 

oder verweigern Schreiben / Aktualisieren / Löschen Zugriff auf alle Benutzernamen, sondern die, die Ihre App verwendet