我希望在我的生产环境中部署日志传送。这意味着我将不得不管理备份链,这些备份链可能会因人们进行备份以刷新开发环境而中断。如果我遇到故障并想使用日志备份恢复到某个时间点,我还需要开发人员进行的备份。
如果开发人员仅使用 COPY ONLY 备份,则不会发生这种情况。所以我的问题是:有没有办法限制用户只能执行 COPY ONLY 备份?
我希望在我的生产环境中部署日志传送。这意味着我将不得不管理备份链,这些备份链可能会因人们进行备份以刷新开发环境而中断。如果我遇到故障并想使用日志备份恢复到某个时间点,我还需要开发人员进行的备份。
如果开发人员仅使用 COPY ONLY 备份,则不会发生这种情况。所以我的问题是:有没有办法限制用户只能执行 COPY ONLY 备份?
你不需要让他们使用
COPY_ONLY
。只有一个中间人LOG BACKUPS
会打破LSN
. 您可以做的是明确DENY BACKUP LOG to [user|group]
授予开发人员或开发人员组的权限。或者,只需创建一个角色并拒绝该角色的备份日志。因此,该角色中的所有用户都将继承权限。例如
现在测试它:
好问题,我找不到好的答案,但这里有一个。如果您将每个人都从备份角色中删除,然后为特定用户创建一个使用 execute as 命令将 copy_only 备份文件放到特定位置的任务,该怎么办?
您可能能够做的是 1)拒绝对此类用户进行备份(日志和/或完整),但仍然 2)允许他们启动执行特定数据库的仅复制备份的作业(在授予的帐户下运行备份权限)。我有这样一个解决方案,可以自动执行 PROD 到 PRE-PROD 数据库的自动恢复,以便进行调查;特定用户有权访问在 PROD 中执行仅复制备份的作业(在 PRE-PROD 中),将文件从 PROD 移动到 PRE-PROD,然后在 PRE-PROD 服务器上恢复移动的备份。从而确保此类用户无法破坏 PROD 上的备份逻辑。
(在调查问题时,开发人员可能会尝试通过将文件从源实际移动到测试服务器而不知道他们正在破坏备份逻辑来进行完整备份以在测试服务器上恢复它......所以我同意强制复制- 仅备份很重要。)