Announcement

Collapse
No announcement yet.

sicheres weitergeben einer mdf-Datenbank-Datei

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • sicheres weitergeben einer mdf-Datenbank-Datei

    Hallo liebe Mitstreiter!
    ich würde gern eine Datenbank-Appl. mit Frontend .NET und Backend mssql-Server 2005 dev-edition vertreiben.
    Allerdings kann jeder als Admin angemeldeter User sich komplett der MDF-Datenbankdatei bemächtigen (was nicht in meinem Sinne wäre).
    Gibt es eine Möglichkeit zu verhindern, dass irgendein User am Frontend vorbei auf die Daten zugreifen kann ?

  • #2
    Ich wollte das auch lange nicht wahrhaben, aber das ist eben so. Im Prinzip könnte jeder, der den mdf-File in die Hand kriegt, den mit nach Hause nehmen, sich einen SQLExpress installieren und den mdf mounten und ansehen. Habe noch kein Mittel dagegen gefunden.
    Die Daten lassen sich ja noch verschlüsseln, aber bei stored procs sieht es schon anders aus - das was man mit "WITH ENCRYPTION" machen kann, ist mit entsprechenden Tool für einen Admin einfach zu knacken ...
    Wenn's sicher sein soll, eine andere Db verwenden, Firebird wäre da zB ein Möglichkeit, vielleicht auch nicht 100%, aber doch besser als SQLExpress zu sperren und wenn es eine single user App ist, dann wäre da ev. "Firebird embedded" ein Thema. Es gibt sicher auch noch andere in Frage kommende DB's aber darüber fehlt mir dann das Wissen.
    Vielleicht können ja andere etwas darüber erzählen :-)

    bye,
    Helmut

    Comment


    • #3
      Hallo Helmut,
      vielen Dank für Deine Stellungnahme!
      Allerdings schockiert mich Deine Einschätzung etwas (ich kann es also immer noch nicht wahrhaben ). In wie vielen Büchern oder MS-Artikeln werden SQL-Server Sicherheitsmechnanismen ausführlichst beschrieben, um grosszügig zu verschweigen, daß dies alles nur im "Hochsicherheitstrakt" von Firmen eine Rolle spielt. Wo bleibt da bitteschön der Entwickler, der seine Anwendung an den "kleineren" Kunden weitergeben will ?
      Für strategische Empfehlung der Firma WinzigWeich (oder Korrektur meiner falschen Einschätzung der Situation) wäre ich höchst erfreut.



      frustrierte Grüsse
      Bernhard

      Comment


      • #4
        AFAIK kann der MS SQL-Server ab der Version 2005 eine Verschlüsselung der gewünschten Art. Dazu müsstest du dich aber mal in die MSDN "einwühlen".

        ... werden SQL-Server Sicherheitsmechnanismen ausführlichst beschrieben, um grosszügig zu verschweigen, daß dies alles nur im "Hochsicherheitstrakt" von Firmen eine Rolle spielt.
        Generell ist jedes System knackbar welches auf dem Kundenserver läuft bzw. wo der Einbrecher direkten physikalischen Zugriff hat und dann per Debugger und ähnliches Analysiert durchführen kann. Wenn du nicht per Obfuscation dein Passwort halbwegs verschlüsselt wird jeder Halbwegs fähige User in 2 Minuten mit Kostenlosen Tools dieses herausbekommen und sich die DB unverschlüsselt wieder anzeigen lassen.

        Comment


        • #5
          Die Verschlüsselung für die Daten selber ist top gelöst. Aber ich kann zB meine Tabellenstruktur nicht verbergen. Jeder, der Adminrechte auf dem Rechner mit dem SQL-Server hat, ist automatisch auch Admin des SQL-Servers! Und es gibt meines Wissens auch keinen Schutz gegen das Einspielen einer Sicherung auf einem anderen Server als den originalen.
          Gut, ich habe das Problem nicht, da ich bisher nur Individuallösungen geschrieben habe, die nur der Auftraggeber brauchen kann und mir auch egal ist, was der mit seiner DB anstellt. Aber für kleinere Standardlösungen, die ich mengenmässig verkaufen möchte, würde ich derzeit wahrscheinlich Firebird wählen. Mit dem habe ich vor Jahren schon mal begonnen (da war es noch Interbase 6.1) und hatte auch eine Möglichkeit gefunden, den Sysadmin zu löschen, damit nur mehr mein Login funktionierte. Den Source einer stored proc konnte man ebenfalls löschen, da blieb nur mehr ein binary in der Db (ist wahrscheinlich auch jetzt noch so). Habe dann aber zu SQLServer gewechselt, weil Interbase in Netzwerken mit schlechter Qualität so viele Probleme hatte. Inzwischen hat sich ja viel getan und vielleicht wäre ein Blick auf Firebird 2.0 ganz interessant... ?

          bye,
          Helmut

          Comment


          • #6
            Hallo,

            nur bei der explizit für Desktop-Rechner vorgesehenen MS SQL Server 2005 Compact Edition kann die komplette Datenbank verschlüsselt werden werden, so dass auch ein Administrator den Inhalt nicht einsehen kann, wenn er das Passwort nicht kennt.

            Die anderen (für den Einsatz auf einem Server vorgesehenen) Editionen basieren auf dem Schutzprinzip, dass nicht Jeder Benutzer einen physischen Zugriff auf die Server-Festplatten hat.

            Comment


            • #7
              nur bei der explizit für Desktop-Rechner vorgesehenen MS SQL Server 2005 Compact Edition kann die komplette Datenbank verschlüsselt werden werden, so dass auch ein Administrator den Inhalt nicht einsehen kann, wenn er das Passwort nicht kennt.
              Das scheint die richtige Version des SQL-Servers für genau meine Belange zu sein. ich hab jetzt auch schon versucht diese Version auf meinem Rechner zu installieren, hab da aber meine Probleme.
              Da meiner Meinung nach die Compact-Edition des SQL-Servers die Bedürfnisse vieler User abdeckt (verschlüsselbare DB-Datei auf Client-Rechner / geringer Overhead - einfach keine Kanone um die vielen Spatzen in der DB-Welt zu erlegen) frage ich mal nach ob die SPEZIFISCHEN Probleme der CE nicht in einem eigenen Thread erschlagen werden könnten ?
              Gruss,
              Bernhard

              Comment


              • #8
                Man sollte sich aber vorher ansehen, ob man mit den Einschränkungen der Compact-Edition leben kann - unter anderem keine stored procedures!

                bye,
                Helmut

                Comment


                • #9
                  Hallo,

                  ...unter anderem keine stored procedures!
                  die Compact Edition wird als DLL in den Adressraum der Anwendung geladen, somit ist JEDE im Programm implementierte Prozedur eine "gespeicherte Prozedur" der Datenbank ;-)


                  Die Compact Edition ist ein "Zwitter", da sowohl der mengenorientierte Zugriff als auch der datensatzorientierte Zugriff über die folgenden Wege unterstützt wird:
                  • DataSet
                  • DataReader
                  • Updatable Result Sets (beschreibbarer "serverseitiger" Cursor)

                  Comment

                  Working...
                  X