Database Encryption in SQL Server 2008
سناریو / مشکل: بکاپ های که از بانک ها گرفته میشود در هر سیستمی قابل بازیابی است و در صورت خارج شدن از سازمان دیتا در هر سیتمی قابل استفاده است.
سناریو / مشکل: فایل های اصلی بانک اطلاعاتی شامل MDF , LDF در صورت دزدیده شدن در هر سیستمی قابل استفاده هستند.
راه حل: رمزنگاری بانک اطلاعاتی
Transparent Data Encryption نوع دیگری از رمزنگاری هست که با SQL SERVER 2008 معرفی شده و رمزنگاری رو در سطح دیتابیس انجام میده و محدود به ستون ها و رکوردهای دیتابیس نیست و از data فایل و log فایل محافظت میکنه.
پیاده سازی Transparent Data Encryption در بانک اطلاعاتی همونطور که اسمش پیداس برای برنامه های کاربردی که از بانک اطلاعاتی استفاده میکنند بصورت نا پیدا (transparent) است یعنی بدون نیاز به هیچ تغییری میتونیم این مکانیزم امنیتی رو در سطح دیتابیس داشته باشیم.
بعد از فعال کردن این نوع رمزنگاری در بانک اطلاعاتی بکاپی که از این بانک گرفته میشود(در سرور مبدا) فقط و فقط در سروری که certificate از سرور مبدا داشته باشد قابل بازیابی است همچنیا برای attach کردن فایل های اصلی بانک اطلاعاتی در سرور مقصد هم این فرایند نیاز است.
USE master ; GO --The database master key is a symmetric key used to protect --the private keys of certificates and asymmetric keys that are present in the database. --When it is created, the master key is encrypted by using the Triple DES algorithm and a user-supplied password. --To enable the automatic decryption of the master key, a copy of the key is encrypted by using the service master key --and stored in both the database and in master. CREATE MASTER KEY ENCRYPTION BY PASSWORD='P@ssw0rd'; GO -- When SQL Server generates a self-signed certificate, the private key is always created. -- By default, the private key is encrypted using the database master key. CREATE CERTIFICATE MyEncryptionCert WITH SUBJECT = 'My TDE Certificate'; GO BACKUP CERTIFICATE MyEncryptionCert TO FILE= 'C:\Backup\MyEncryptionCert.cer' WITH PRIVATE KEY (FILE = 'C:\Backup\MyEncryptionCert.pvk' , ENCRYPTION BY PASSWORD= 'MyPassw0rd'); GO USE AdventureWorks; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyEncryptionCert; GO SELECT * FROM sys.dm_database_encryption_keys GO ALTER DATABASE AdventureWorks SET ENCRYPTION ON GO SELECT * FROM sys.dm_database_encryption_keys GO USE Master Go BACKUP DATABASE AdventureWorks TO DISK='C:\Backup\AW_Encrypted.bak'; GO -- CREATE the Certificate on the Server which is used to Restore the encrypted database. -- You need to first create a MASTER KEY in the server if it does not exist. -- You may simulate this by dropping the Certificate on this Server. USE Master; GO DROP CERTIFICATE myEncryptionCert; GO CREATE CERTIFICATE MyEncryptionCert FROM FILE= 'C:\Backup\MyEncryptionCert.cer' WITH PRIVATE KEY (FILE = 'C:\Backup\MyEncryptionCert.pvk' , DECRYPTION BY PASSWORD= 'MyPassw0rd'); GO -- YOU Can now restore the Encrypted database successfully.
خوب بود. اما این موضوع بسیار جای کار و بررسی بیشتر دارد که امیدوارم در بلاگ های فارسی از جمله بلاگ شما بیشتر به آن پرداخته شود.
پاسخحذفموفق باشید
سلام
پاسخحذفاطلاعات تکمیلی (البته غیر فارسی)
http://technet.microsoft.com/en-us/library/cc278098%28SQL.100%29.aspx#_Toc189384676
ضمنا اگه سوالی بود مطرح کنید