Sql-Server

數據庫備份和證書備份的文件權限

  • March 22, 2019

我已經備份了一個數據庫並將數據庫主密鑰備份到同一個文件夾。每個人都擁有對該文件夾的完全訪問權限,但是,只有數據庫備份繼承了該文件夾的權限,而密鑰備份沒有。

我需要使用管理員權限來查看主密鑰備份文件的安全性。

誰能建議為什麼會這樣?兩者都是由同一帳戶通過 T-SQL 中的備份命令創建的。

每當您執行BACKUP CERTIFICATEorBACKUP MASTER KEY時,SQL Server 將修改它創建的每個生成的文件系統文件的訪問控制列表 (ACL) 1,以便除以下 Windows 主體之外的任何人都無法訪問該文件:

  1. OWNER_RIGHTS擁有完全控制權。OWNER_RIGHTS 是一個眾所周知的安全標識符,S-1-3-4它代表對象的目前所有者。當攜帶此 SID 的訪問控制條目應用於對象時,系統將忽略對象所有者的隱式 READ_CONTROL 和 WRITE_DAC 權限。
  2. 本地“管理員”組的成員擁有完全控制權
  3. 用於執行 SQL Server的虛擬帳戶或託管服務帳戶具有完全控制權。請注意,這不是您在 SQL Server 配置管理器中配置的 SQL Server 服務帳戶。對於預設 SQL Server 實例,該帳戶通常是NT SERVICE\MSSQLSERVER. 對於命名實例,帳戶名為NT SERVICE\MSSQL$INSTANCE_NAME
  4. 從對象的 ACL 中刪除繼承以防止任何其他主體訪問。

此行為是設計使然,是為了限制對生成的證書及其私鑰的訪問。允許“每個人”訪問證書和私鑰文件允許每個人將 TDE 加密數據庫的備份恢復到他們選擇的伺服器上,並且能夠查看所有加密數據,就好像它沒有加密一樣。你提議做的事情對我來說似乎是一個非常糟糕的主意,因為它基本上繞過了加密。

有關更多詳細資訊和範常式式碼,請參閱我的部落格文章。


1 - 假設 SQL Server 服務對備份語句中的目標文件夾具有“完全控制”權限。

引用自:https://dba.stackexchange.com/questions/232596