I have around 1GB of structured text data, (that is presently saved in database MySQL, mroe than 1million records) utilized by software. I have to ship this data together with the program.

I should also safeguard this data. This data should not be not accessible for customers for other reasons. Miracle traffic bot is like an interface to data. like every database client.

What is the best way to do this? Also kindly let me know benefits and drawbacks of those techniques available to ensure that I'm able to decide myself the next time.

EDIT::

I believe my real question is not obvious. My software works about this data. It offers query interface with this data. It shows data based on user based on his needs by querying the DBMS that has this data. My major concern here isn't the size the program (together with this data). I'm not going user to redistribute this data. So, storing encoded data inside a zipped file isn't a solution.

  1. So, I have to use embedded DBMS like sqlite. But exactly how to secure this? So, that user cannot distribute.
  1. Ship it on the DVD associated your products.
  2. Allow it to be readily available for download from the website.
  3. If bandwidth enables, give a web service and also have all of your customers connect with your central database through the web service rather than getting stand alone cases of your computer data.

When you distribute data, it's pretty much from your control. That you can do such things as scribe or secure it, but it is not really a foolproof solution. Really the only, sure-fire method to safeguard your computer data would be to not provide out.

That getting been stated, you will find a couple of options:

  • Secure the database in some manner. When the database is not for confirming and does not must have lots of general queries run against it, you are able to secure in the row or area level. This can REALLY decelerate the machine, though.
  • If utilizing an embedded database, secure the whole file. This can considerably decelerate startup and shutdown time for the application, though.

Regrettably, when you distribute your computer data, it is a losing fight to try and secure it. A much better wager, if you're able to, is use a query web service to ensure that your computer data will never be aged en toto with a user - you simply send them query results within the wire. You are able to adopt a person authentication technique to verify that only legitimate customers make use of the system, and keep tight treatments for your computer data this way.

EDIT: see my final paragraph. If you are disbursing your computer data, you no more have explicit treatments for who are able to enter into having it, so any "control" of the data should be because of file encryption or perhaps a similar protection. Regrettably, you need to distribute a vital sooner or later towards the user (or even the software anyone's operating) to be able to access the information. A sufficiently sophisticated user will manage to taking the important thing and breaking your computer data protection. But, considering that complete security is definitely an impossibility when your data are at the disposal of the consumer, you are able to provide your very best effort by using file encryption. Your only two real options at that time will be to secure data per row (or area?) in order to secure the whole embedded database file.

It may sound like you are searching for a DRM mechanism: you are likely to put locked data, as well as the answer to that lock, at the disposal of customers, with something to try and prevent them by using the important thing in ways you do not like. So any software-based method you develop will have a similar restrictions as existing DRM systems.

The only real a couple of things I'm able to think about that may really work could be:

  1. keeping the information by yourself servers, after which attempting to limit calls into it (if a lot of customers query an excessive amount of, they might build their very own copy from the database), or

  2. shipping it to customers however with an actual protection mechanism, that is type of like #1 except you are putting it within their hands, after which sealing it so that it self-destructs by trying to spread out it (technical support will probably be fun!)

Any software-only file encryption is really a temporary solution at best: for this to become whatsoever helpful, the information must exist at some stage in amount of time in unencrypted form for the software for doing things, which means they are able to see clearly themselves.