我已经备份了一个数据库并将数据库主密钥备份到同一个文件夹中。每个人都可以完全访问该文件夹,但是,只有数据库备份继承了该文件夹的权限,而密钥备份则没有。
我需要使用管理员权限查看主密钥备份文件的安全性。
任何人都可以建议为什么会这样吗?两者都是由同一帐户通过 T-SQL 中的备份命令创建的。
我已经备份了一个数据库并将数据库主密钥备份到同一个文件夹中。每个人都可以完全访问该文件夹,但是,只有数据库备份继承了该文件夹的权限,而密钥备份则没有。
我需要使用管理员权限查看主密钥备份文件的安全性。
任何人都可以建议为什么会这样吗?两者都是由同一帐户通过 T-SQL 中的备份命令创建的。
每当您运行
BACKUP CERTIFICATE
orBACKUP MASTER KEY
时,SQL Server 都会修改它创建的每个生成的文件系统文件的访问控制列表 (ACL) ,这样除以下 Windows 主体外,没有人可以访问该文件:S-1-3-4
代表对象的当前所有者。当携带此 SID 的访问控制条目应用于对象时,系统将忽略对象所有者的隐式 READ_CONTROL 和 WRITE_DAC 权限。NT SERVICE\MSSQLSERVER
. 对于命名实例,该帐户名为NT SERVICE\MSSQL$INSTANCE_NAME
。此行为是设计使然,旨在限制对生成的证书及其私钥的访问。允许“每个人”访问证书和私钥文件允许每个人将 TDE 加密数据库的备份恢复到他们选择的服务器上,并且能够像未加密一样查看所有加密数据。你打算做什么对我来说似乎是一个非常糟糕的主意,因为它基本上绕过了加密。
有关详细信息和示例代码,请参阅我的博客文章。
1 - 假设 SQL Server 服务对备份语句中的目标文件夹具有“完全控制”权限。