8

I'm helping a friend with setting up encryption of data on SQL Server 2008 R2 Standard edition. Upon original research I thought I could use TDE but did not realize that it was only available for Enterprise or DataCenter versions of SQL Servers. Upon further research into SQL Server 2008 R2 features I saw that it does allow for "Data encryption and key management" but I'm not sure what it means or how to implement it.

What is the most efficient and low cost method for data encryption? Should I do something through SQL Server or just use third party tools to encrypt the whole volume where DB and backups are? Also if someone can point to a way to use "Data encryption" that comes as feature in standard edition I would really appreciate. Every time I search for encryption on sql server I keep ending up on how to use TDE and in current scenario it is not feasible for the size of business to purchase Enterprise Edition.

Reason for encryption - HIPAA Compliance. If access is gain to file system for database or backups, data is encrypted and can not be of any use. This could include physical access to the machine or access through local admin.

0

4 Answers 4

9

Since you are using Standard Edition, you cant use TDE. So other options are

Using encryption keys at instance/database level :

SQL Server has two kinds of keys: symmetric and asymmetric. Symmetric keys use the same password to encrypt and decrypt data. Asymmetric keys use one password to encrypt data (called the public key) and another to decrypt data (called the private key).

SQL Server has two primary applications for keys: a service master key (SMK) generated on and for a SQL Server instance, and a database master key (DMK) used for a database.

Also, you can have encryption at column level by creating a MASTER KEY ENCRYPTION along with CREATE CERTIFICATE and then CREATE SYMMETRIC KEY.

An example of how this can be done is described at Encrypt a Column of Data

Reference : SQL Server and Database Encryption Keys (Database Engine)

At Drive level :

Using BitLocker as it is a Drive Encryption data protection feature available Windows Server 2008 R2. Refer to : BitLocker Drive Encryption Overview There are many opensource or third party software to do the same job but at additional cost.

Note: The most important bit is ALWAYS backup your encryption keys.

You can use third party software like Redgate's sql backup which allows you to encrypt backups using passwords.

Depending on what level you need encryption will determine if it is worth upgrading to enterprise edition or not. You have to evaluate native TDE encryption vs encryption keys and certificates vs open source vs disk encryption.

1
  • I disagree with using BitLocker. This from MS docs: "BitLocker does not protect the computers contents while Windows is running." preview.tinyurl.com/hw9pzcm
    – Dina
    May 8, 2018 at 19:38
5

Old question, I understand, but an answer in addition to the above answers exists since SQL Server 2016 SP1.

SQL Server 2016 introduced "Always Encrypted" as well as other security features like Dynamic Data Masking and Row Level Security. These were features originally released in Enterprise Edition Only.

They now exist as features available in any SQL Server 2016 SKU - Enterprise, Standard or even Express.

Worth checking out and worth looking at the upgrade process now. You can read more about this on Microsoft's post about SP1 for SQL Server 2016..

1
  • 1
    I have already looked into the possibility of upgrading to SQL Server 2016 SP1 for new features that Microsoft Released. SQL Server 2016 SP1 will definitely change market and decisions for database platform. Nov 21, 2016 at 13:37
3

First, ask the question "why am I encrypting this database?"

If the answer is "to hide data from the database administrators" then SQL Server encryption of any kind is not the answer. In that case the client application should be encrypting data and storing the ciphertext in the database. That way neither the database server nor the database administrators (nor the network administrators, as well) ever see unencrypted data or encryption keys.

Encrypting the data on the client before sending it to the server means that the database files and database backups are all encrypted and are protected against someone stealing a backup tape or hard disk and are also protected against rogue or compromised administrator accounts.

See Laurentiu Cristofor's blog article Who needs encryption? and HIPAA Compliance with SQL Server 2008 on the SQL Server Security Blog

0
0

Answer originally left as an edit to the question by the author:

Solution Used

After presenting different options to System Admin in charge of the project, decision was made to go with BitLocker drive Encryption. I stopped the SQL Instance during the encryption process and had no problem restarting it after encryption was complete.

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