0

We currently facing the problem to provide an offline version of a Server-Client-App (WCF/Silverlight). On our server we currently working with a heavy weight MSSQL Server, storing global and user data.

Now, to provide an offline version, we have to provide a local database subset. It will have to store a lot of data anyway (probably >6GB).

Now we don't want anyone to be able to modify or even see the db structure and data. But as far as I know, localdb or SQL Express have always the problem, that a local admin with knowledge of sql can open and manipulate the db with sa.

What would your suggestions be?

germanSharper
  • 911
  • 9
  • 13
  • 1
    Have you looked at sqlite? Try the answer here - http://stackoverflow.com/a/1385690/131809 alternatively can do with this (commercial product) - http://sqlcipher.net – Alex Mar 17 '14 at 12:11
  • 1
    No matter what technology you choose "a local admin with knowledge" will ALLWAYS be able to read it, even if it is encrypted. If a user has administrative privileges and they are determined it is only a matter of time before they reverse engineer your program get the decryption keys and view the database themselves. The question you need to ask your self is it the time any money you are going to spend trying to "protect the database" going to save you more money than the "potential losses" you will have if the user has access to the database. – Scott Chamberlain Mar 17 '14 at 12:33
  • 1
    If you can use a different type of data storage such as NoSQL,xml or json, then you can store the data on a file and encrypt it using any of the system.security libraries in .NET. It will be very hard to stop admins from accessing your SQL data files, even with encryption – Chris Mar 17 '14 at 13:41

0 Answers0