Limit Datenmanipulation von dem Benutzer nur durch Anwendungsschicht für Multi-Datenbank-Lösung

StackOverflow https://stackoverflow.com/questions/1537765

  •  20-09-2019
  •  | 
  •  

Frage

Ich fange an, die Entwicklung einer neuen Software, die auf SQL Server (2005 und höher) kompatibel sein müssen, Oracle (10R2 und höher) und Sybase (12.5 und höher). Ich plane, um die Datenbank-Abstraktion unter Verwendung von gespeicherten Prozeduren bei der Umsetzung, so dass ich Ansätze für jeden Fall mehr performatic Code Implementierung Datenbank spezifische verwenden kann. Ich plane, den Zugang zu allen Tabelleninformationen zu verweigern, einschließlich der Daten zu lesen, und ermöglichen den Zugang zu Informationen nur über gespeicherte Prozeduren. Das Problem ist, dass, wenn ich die Erlaubnis, auf eine gespeicherte Prozedur ausführen erteilen, die INSERT verwendet werden, wenn der Benutzer eine Verbindung zu der Datenbank durch SSMS oder SQL Plus, wird er in der Lage sein, Daten hinzufügen, indem Sie das Verfahren direkt anrufen, und ich würde wie dies zu verhindern. Ich möchte, dass die Datenmanipulation über gespeicherte Prozeduren nur durch meine Anwendung ausgeführt werden. Ich konnte getrennte Anmeldungen für meine Anwendung geben und den Benutzer, aber ich möchte die Möglichkeit, meine Anwendung auf die Datenbank über NT-Authentifizierung eine Verbindung haben, die Anmeldeinformationen des Benutzers verwendet wird. Gibt es eine Möglichkeit, dies zu tun?
Gibt es eine bessere Art und Weise zu erreichen, was ich versuche zu erreichen?
Dank

War es hilfreich?

Lösung

Sie könnten eine UUID in Ihrer Anwendung einbetten und die gespeicherte Prozedur es erfordern, bevor sie Daten in die DB schreiben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top