Does it sound too good to be true: transparent data encryption? Well, it kind of is and kind of isn’t. Let me explain. Transparent means that the application developer doesn’t do anything (and if you have a third party app in which you can’t do anything anyway, then this is even more important). Once enabled, the data is seemlessly protected.
But, protected from what? That’s the part that needs a bit of explaining…
We all talk about the importance of physical security (I hope this doesn’t sound new)? We all talk about the importance of protecting the physical media to which you’ve backed up your database(s)? We all talk about protecting the server/machine from physical access and of course, protecting the mdf/ldf files from unauthorized access if we copy them to other machines for attach. And, we all know that with all releases of SQL Server, up to and including SQL Server 2005 (with one exception – details coming up), that our databases are susceptible to unauthorized access if someone gains access to the physical files (whether the actual data files and/or the backup). The one exception is if data within the database has been encrypted using SQL Server 2005 column level encryption. As long as your database master key (created to allow encryption within the database) is strong and protected, then the data that is encrypted with it is also protected (you’re only as good as your key protection mechanism). However, any data that is not encrypted is fair game to any system administrator who solely attaches the database or restores it. This is not good. However, it is reality in general. Physical security is incredibly important.
Now, having said all of that, SQL Server 2008 is going to change the landscape a bit. SQL Server 2008 is going to offer a way of protecting this “resting” data – transparently. Basically, once this is turned on, your data is protected from an unathorized attach OR when backed up, unauthorized restore.
This feature is not in the current CTP but I hope to see it in the next publicly available CTP (which will hopefully be out soon). So, when we can finally see it, I’ll give you more details such as how to implement it, whether or not it negatively/positively impacts other features and the impact on performance.
Thanks for reading!