# Theoriefrage : Sichere anmeldung an einer SQL-Datenbank



## Tallan (24. Aug 2009)

Hallo zusammen,

ich schreibe zur Zeit ein Programm das auf Daten in einer SQL-DB zugreif, die Daten liegen hierbei alle in der selben Tabelle.
Der Nutzer sollte aber nur das "Recht" haben einen teil dieser Daten zu lesen.

Meine Frage ist wie sichere ich das am besten ab.

Meine erste idee war dem User im Programm selbs spezifische rechte zu geben was er machen darf oder nicht.
Problem hierbei wäre das er generell aber die rechte hätte diese Daten abzufragen (z.B. über ein anderes Progamm).

Wie ich von der Datenbankseite aus verhindern kann das der User auf Daten die in der selben Tabelle liegen und sich nur durch ein Flag unterscheiden nicht zugreifen kann weiß ich leider auch nicht, ist das überhaupt möglich?


----------



## The_S (24. Aug 2009)

Generell ist das ein eher ungünstiges Design. Ich würde dort am ehesten einen Server vor die DB schalten. Von außen kann nicht direkt auf die DB zugegriffen werden, sondern nur über den Server. Dieser steuert die Berechtigungen.


----------



## Tallan (24. Aug 2009)

The_S hat gesagt.:


> Generell ist das ein eher ungünstiges Design. Ich würde dort am ehesten einen Server vor die DB schalten. Von außen kann nicht direkt auf die DB zugegriffen werden, sondern nur über den Server. Dieser steuert die Berechtigungen.



Die Idee hatte ich auch schon allerdings muß ich sagen das ich ein extra programm nur um die zugriffe nochmals zu sichern für unnötig halte sofern es eine andere lösung gibt.


----------



## sparrow (24. Aug 2009)

Tallan hat gesagt.:


> sofern es eine andere lösung gibt.



Gibt es nicht. Zumindest keine sichere.
Falls du eine findest gib uns Bescheid. Wir sagen dir dann warum der Hob.... das_S doch recht hatte


----------



## Tallan (24. Aug 2009)

sparrow hat gesagt.:


> Gibt es nicht. Zumindest keine sichere.
> Falls du eine findest gib uns Bescheid. Wir sagen dir dann warum der Hob.... das_S doch recht hatte



ich versuche momentan eine möglichkeit zu finden das ganze per ssl zertifikat zu lösen, da eine verschlüsselung generell nicht verkehrt wäre und so, so hoffe ich zumindest gewährleistet wäre das keine anderen tools benutzt werden können und ich somit die zugriff über den client koordinieren kann, dafür habe ich allerdings einen seperaten thread erstellt


----------



## maki (24. Aug 2009)

Frage: Stehen die Anmeldedaten (Benutzername, Passwort, DB Url) im Quellcode?


----------



## tfa (24. Aug 2009)

Die einzige Möglichkeit wäre, für jeden Anwender einen Datenbankuser anzulegen und die Berechtigungen auf DB-Ebene zu verwalten (vielleicht über Stored Procedures? jeder User hat seine eigenen Tabellen?). Die Anwender meldet sich dann mit dem jeweiligen Datenbank-Passwort an. Das wäre aber ein riesen Aufwand in der Benutzerverwaltung. Die Server-Client-Lösung ist meiner Meinung nach das sauberste.


----------

