【问题标题】:Delete Database before it is being Backuped在备份之前删除数据库
【发布时间】:2012-09-15 09:49:23
【问题描述】:

我使用的是 SQL Server 2008。现在我想创建一个触发器来捕获数据库备份。我看了 DDL 触发器。但没有找到任何关于备份的信息。

编辑:真的是我需要做的。如果有人要备份数据库,我想删除数据库。也许用触发器或事件通知来做这件事并不好。如果是这样,请建议替代方式

简单地说,当有人要备份数据库时,如何删除数据库

【问题讨论】:

  • 是的,我想在备份之前删除数据库。不想给别人备份
  • 记住:任何拥有数据库读取权限的人都可以复制数据。你不需要“备份”它来复制它。所以你不会阻止用这种方法“窃取”数据。
  • 你说数据库已经不存在了。是的你是对的。当有人右键单击数据库时,我真的很想删除数据库-->任务-->备份...
  • 我对您的第二条评论的评论。您是对的,任何对数据库具有读取权限的人都可以复制数据。但我用文件组创建了数据库。如果用户对我的数据库架构一无所知,则很难恢复数据库。但有了备份,他(她)可以轻松获取我的数据库
  • 用户不需要知道任何关于你的数据库“架构”的信息。将完整的数据库转储到文本文件真的非常简单。你无法阻止这种情况。

标签: sql sql-server sql-server-2008 triggers backup


【解决方案1】:

您可以使用Event Notification for the AUDIT_BACKUP_RESTORE_EVENT 事件。

审核备份/恢复事件类在备份或恢复时发生 已发出恢复命令。

【讨论】:

  • 我在这里观看了mssqltips.com/sqlservertip/2121/… 以创建通知。但不是成功。怎么用?请提供任何样品...
  • 我查看并测试了这段代码。但是当我做备份时,没有行添加到 EventNotificationQueue。你能提供一些工作样本吗?
【解决方案2】:

您可以找到可用于查询的backup history of all databases in the msdb database。我不知道有任何用于备份的推送通知系统,但您可以对历史数据进行轮询和查询。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 2011-08-22
    • 2012-07-21
    • 2018-08-20
    • 2022-12-17
    • 2022-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多