Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have a database hosted by SQL Azure, and accessed via a REST service that itself is accessible only via https. We wonder though whether we should encrypt all or part of the database in case it was to be accessed by a hacker (we are not a prime target, but students will know of the system). The Azure database is set up with firewall rules to allow only a few systems access.

Would encrypting add anything meaningful? Would it just be security theatre? Or is database encryption best-practice regardless.

share|improve this question
up vote 1 down vote accepted

Your REST API is going to be the weak link here, especially if you have the SQL Azure firewall locked down (and you can even lock it down to the point that only Windows Azure Compute instances may access it).

SQL Azure has no built-in encryption mechanism, so you'd need to perform this step in your data access layer (or directly in the REST API implementation methods). Same goes for decryption. So... as @Bart pointed out: if someone breaches security on your REST API, they're going to have access to unencrypted data (related to the credentials used during the breach).

Regarding general database encryption practices: If you encrypt/decrypt in the cloud, then at some point, data at rest is unencrypted (which is critical when thinking about PII).

share|improve this answer

If there's an interface to get the data out, and someone manages to breach that interface (whether the input isn't being sanity checked or some other method,) the encryption won't really help. Most of your interaction would come from that interface. The encryption I would think would be handy if someone stole the raw files on disk. Unless you're storing your data as encrypted information that is decrypted by your application, which is another layer of abstraction, but that sounds kind of silly...

How sensitive is the data? If it's extremely sensitive you could limit access by IP to a particular set of users, or access it through a particular VLAN/VPN interface. You might want to reconsider hosting extremely sensitive data outside your control.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.