SQLSERVER使用密碼加密備份檔案以防止未經授權還原資料庫
在備份資料庫的時候,使用者可以為媒體集、備份集或兩者指定密碼
在backup語句中,定義備份集密碼和媒體密碼為可選功能。使用密碼可防止利用SQLSERVER工具未經授權地執行還原操作和在媒體中新增備份集。
如果指定了密碼則使用者還必須提供媒體密碼才能執行這些操作
儘管使用密碼對防止利用SQLSERVER工具未經授權地訪問媒體內容有幫助,但密碼不能防止媒體內容被破壞。密碼不能完全防止未經授權地訪問媒體內容,
原因在於備份集中的資料沒有加密,理論上可以被專為此目的建立的程式所檢視備份檔案裡面的內容。
對於安全性至關重要的場合,防止未經授權的個人訪問媒體非常重要
注意:從 SQL Server 2012 開始,PASSWORD 和 MEDIAPASSWORD 選項不可再用於建立備份; 但仍可以還原使用密碼建立的備份!!!
以下是MSDN關於backup語句中的MEDIAPASSWORD選項和PASSWORD選項的解釋
1 PASSWORD = { password | @password_variable } 2 為備份集設定密碼。 PASSWORD 是一個字串。 如果為備份集定義了密碼,則必須提供此密碼才能對該備份集執行任何的 SQL Server 還原操作。 3 但是,備份集密碼不能防止覆蓋備份檔案。 若要防止覆蓋備份檔案,請改用媒體集密碼 4 此密碼提供的安全性較低。 它旨在防止授權使用者或未授權使用者使用 SQL Server 2005 工具進行不正確的還原, 5 但是不能防止通過其他方式或通過替換密碼來讀取備份資料。 保護備份的最佳做法是將備份磁帶儲存在安全的位置, 6或者備份到由適當的訪問控制列表 (ACL) 保護的磁碟檔案。 ACL 應設定在建立備份的根目錄下。
1 MEDIAPASSWORD = { mediapassword | @mediapassword_variable } 2 為媒體集設定密碼。 MEDIAPASSWORD 是一個字串。 3 如果為媒體集定義了密碼,則在該媒體集上建立備份集之前必須提供此密碼。 4 另外,從該媒體集執行任何還原操作時也必須提供媒體密碼。 只有通過重新格式化才能覆蓋受密碼保護的媒體 5 此密碼提供的安全性較低。 它旨在防止授權使用者或未授權使用者使用 SQL Server 2005 工具進行不正確的還原, 6但是不能防止通過其他方式或通過替換密碼來讀取備份資料。 保護備份的最佳做法是將備份磁帶儲存在安全的位置, 7 或者備份到由適當的訪問控制列表 (ACL) 保護的磁碟檔案。 ACL 應設定在建立備份的根目錄下。
BACKUP 使用由 PASSWORD 選項提供的備份集密碼建立備份集。
另外,通常 BACKUP 在寫入媒體之前將驗證由 MEDIAPASSWORD 選項提供的媒體密碼。BACKUP 不驗證媒體密碼的唯一情況是格式化媒體時,
這將覆蓋媒體標頭。 如果 BACKUP 寫入媒體標頭,BACKUP 將給 MEDIAPASSWORD 選項中指定的值分配媒體集密碼。
-------------------------------------華麗的分割線------------------------------------------------------------
分三種情況進行實驗
(1)backup語句中只有mediapassword
(2)backup語句中只有PASSWORD
(3)backup語句中有PASSWORD和mediapassword
1 --情況一 2 USE master 3 GO 4 5 Backup DATABASE [pratice] 6 To disk='D:\pratice_fullbackup_201306110152.bak' WITH mediapassword='123456' 7 GO 8 9 --還原 10 RESTORE DATABASE [pratice] FROM DISK='D:\pratice_fullbackup_201306110152.bak' WITH MEDIAPASSWORD='123456',REPLACE
1 --情況二 2 USE master 3 GO 4 5 Backup DATABASE [hengshan] 6 To disk='D:\hengshan_fullbackup_201306110152.bak' WITH password='123456' 7 GO 8 9 --還原 10 RESTORE DATABASE [hengshan] FROM DISK='D:\hengshan_fullbackup_201306110152.bak' WITH password='123456', REPLACE
1 --情況三 2 USE master 3 GO 4 5 Backup DATABASE GPOSDB 6 To disk='D:\GPOSDB_fullbackup_2013061110152.bak' WITH mediapassword='123456' ,PASSWORD='123456' 7 GO 8 9 --還原 10 RESTORE DATABASE [GPOSDB] FROM DISK='J:\GPOSDB_fullbackup_2013076110152.bak' WITH PASSWORD='123456',MEDIAPASSWORD='123456',REPLACE
在測試情況三的時候我移動了備份檔案,並使用了U盤,但是都不會報錯,只要有提供密碼就可以了
因為對媒體集和備份集不是很熟悉,所以,我把備份檔案備份在D盤,然後把備份檔案移動到本地硬碟的F盤和U盤裡,U盤的碟符是J
但是都不會報錯,只要有提供密碼就可以了
-----------------------------------------------華麗的分割線---------------------------------------------------------
加密了之後使用SSMS不能檢視到備份集資訊
如果不加密是可以看到的
-------------------------------------------------華麗的分割線------------------------------------------------------------------
最後檢視哪些備份集加了密碼,但是隻有media_uuid,不知道備份集的名稱,鬱悶~
1 --檢視哪些備份集加了密碼 2 USE [msdb] 3 GO 4 SELECT * FROM [dbo].[backupmediaset]