保護資料和記錄檔
更新: 2005 年 12 月 5 日
「SQL Server 2005 Database Engine」會將每個資料庫的實體資料和記錄檔的存取權限指定給特定帳戶。此權限可防止具有開放權限目錄中的檔案遭他人修改。例如,如果沒有設定權限,而且資料庫目錄的作業系統權限設為每個人都有**「完整控制權」**,則任何可存取該目錄的帳戶都可以刪除或修改資料庫檔案,即使它們沒有修改資料庫本身的 SQL Server 權限也是一樣。
在下列任一資料庫作業期間都會設定檔案存取權限:建立、附加、卸離、修改以加入新檔案、備份或是還原。
管理考量
- 權限只會在檔案系統支援 Win32 存取控制 (例如 NTFS 檔案系統) 時才設定。「Database Engine」無法針對儲存在原始分割區、FAT 以及 FAT32 檔案系統上的檔案來設定其權限。
- 如果作業系統管理員手動修改檔案權限,「Database Engine」將不會強制執行原始的權限。
- 如果 SQL Server (MSSQLSERVER) 服務帳戶是使用 SQL Server Management Studio 來變更,Management Studio 就會嘗試加入帳戶並修正所有現有資料庫檔案的權限。在變更服務帳戶時對於無法使用的資料庫可能會失敗。
- 如果 MSSQLSERVER 服務帳戶是使用 Microsoft Windows Services 來變更,作業系統管理員就必須針對所有的資料庫與記錄檔,授與新服務帳戶**「完整控制權」**權限。
建立資料庫或加入新檔案
在建立資料庫或修改資料庫以加入新檔案時,將針對 MSSQLSERVER 服務帳戶以及本機 Administrators 群組的成員,授與資料和記錄檔的**「完整控制權」**。並且會移除所有其他帳戶的檔案存取權。
備份和還原資料庫
為了還原或備份所建立之檔案的**「完整控制權」**權限,將會授與給 MSSQLSERVER 服務帳戶以及本機 Administrators 群組的成員。
如果該檔案已經存在,就表示 MSSQLSERVER 服務帳戶已經有該檔案的權限,備份或還原作業將會繼續。否則,「Database Engine」會模擬正在執行作業之連接的 Windows 帳戶並嘗試開啟檔案。在開啟檔案後,就會將權限授與給 MSSQLSERVER 服務帳戶以及本機 Administrators 群組的成員。
待命資料庫檔案 (恢復檔案) 也會以同樣的方式處理。
卸離和附加資料庫
卸離或附加資料庫時,Database Engine 會嘗試模擬正在執行作業之連接的 Windows 帳戶,以確保該帳戶具有存取資料庫與記錄檔的權限。對於使用 SQL Server 登入的混合安全性帳戶,模擬可能會失敗。
安全性注意事項: |
---|
建議您不要附加來源不明或來源不受信任的資料庫。這種資料庫可能包含惡意程式碼,因此可能執行非預期的 Transact-SQL 程式碼,或是修改結構描述或實體資料庫結構而造成錯誤。使用來源不明或來源不受信任的資料庫之前,請先在非實際伺服器中的資料庫上執行 DBCC CHECKDB,同時檢查資料庫中的程式碼,例如預存程序或其他使用者自訂程式碼。 |
下表顯示在附加或卸離作業完成後資料庫和記錄檔上所設定的權限,以及「Database Engine」是否可模擬連接的帳戶。
作業 | 可以模擬連接帳戶 | 授與檔案權限給 |
---|---|---|
卸離 |
是 |
僅執行作業的帳戶。在卸離資料庫後,如果作業系統管理員有需要,可以加入其他的帳戶。 |
卸離 |
否 |
SQL Server (MSSQLSERVER) 服務帳戶與本機 Windows Administrators 群組的成員。 |
附加 |
是 |
SQL Server (MSSQLSERVER) 服務帳戶與本機 Windows Administrators 群組的成員。 |
附加 |
否 |
SQL Server (MSSQLSERVER) 服務帳戶。 |
案例
下列狀況展示建立資料庫時所設定的權限,以及在卸離或附加資料庫時所修改的權限。
資料庫建立者 (dbcreator) 固定伺服器角色的成員 User1,建立了 Sales 資料庫,其中包含 e:\Data\Sales.mdf 檔案以及 f:\Log\Sales.ldf 檔案。在建立資料庫時,MSSQLSERVER 服務帳戶為本機帳戶 SQLServiceAccount2。資料庫和記錄檔的**「完整控制權」**權限,會授與給 SQLServiceAccount2 以及 Windows Administrators 群組的成員。
Sales 資料庫將移至相同伺服器上 SQL Server 的另一個執行個體。系統管理員 (sysadmin) 固定伺服器角色的成員 Admin3,卸離了資料庫。「Database Engine」設定了 Sales.mdf 與 Sales.ldf 檔案的權限,以便讓 Admin3 帳戶才有存取檔案的權限。
Admin3 連接到 SQL Server、SalesServer 的其他執行個體。SalesServer 執行個體的 MSSQLSERVER 服務帳戶為 SQLSalesServiceAccount。在此執行個體上的 SQL Server 管理員 Admin3 附加了 Sales 資料庫。**「完整控制權」**權限會授與給 SQLSalesServiceAccount 以及 Windows Administrators 群組的成員。
請參閱
概念
其他資源
ALTER DATABASE (Transact-SQL)
CREATE DATABASE (Transact-SQL)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
資料庫和資料庫應用程式的安全性考量
移動資料庫檔案
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2005 年 12 月 5 日 |
|