How to protect data in SQLite database?

How do you protect sensitive data in a database?

  • I've written a simple email backup service, in which I can easily forward my mail to my server and it'll store it in a database. Currently, I'm just base64 encoding the data and then storing it. I've been told by many people that they trust GPG the most, but that looks like it'd be difficult to implement on a per-user basis. Is there any way to protect user's sensitive data in such a way that technically only that single person is capable of viewing the contents?

  • Answer:

    Assuming that you are talking about relational databases, there are privileges that can be applied to tables that can allow or restrict reading, writing, updating and deleting data.  The ability to allow or restrict access at different levels of granularity varies by the relational database management system being used.  Every RDBMS that I am aware of allows a database administrator to GRANT or REVOKE the basic 4 privileges ( SELECT, INSERT, UPDATE and DELETE) at the table level.  Some databases will allow you to also apply those 4 basic privileges with a finer degree of granularity.  For example, you can prevent individual columns of data in a table from being accessed/manipulated based on grants, and you can prevent individual rows of data from being accessed/manipulated based on grants. Beyond basic mechanisms to allow or restrict access within a database, other common access control mechanisms include encryption and PKI Certificates.  Also, another thing worth looking at is Oracle's Data Vault technology - it can actually prevent privileged users (i.e. DBAs) from gaining access to confidential data. If you aren't talking about relational databases, then use are pretty much left with normal POSIX security at the file level.

Steve Larrison at Quora Visit the source

Was this solution helpful to you?

Other answers

The answer: DATABASE ENCRYPTION: Steve has provided a good answer though to elaborate (we’re assuming Relational) since most mainstream, legacy databases for simple storage/backup are relational databases. Some come with built-in encryption functionality (like Microsoft and Oracle) that allows the user to specify which data elements are encrypted. This method encrypts the data before it is written to the database tables; access to decrypt the data can be tightly restricted so that any person or application without rights will only see garbled text.

Sherri Douville

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.