gpt4 book ai didi

sql-server - Azure SQL 数据库触发器将审核信息插入 Azure 表

转载 作者:行者123 更新时间:2023-12-03 01:11:05 25 4
gpt4 key购买 nike

我正在开发数据库审核解决方案,并正在考虑让 SQL Server 触发器处理更改并将其插入审核表中。由于这是一个 SQL Azure 数据库并且相当大,因此我担心由于审核而导致数据库不断增长的成本。

为了减少审计所需的成本,我正在考虑将审计表(或多个表)存储在 Azure 表中,而不是 Azure SQL 数据库中。那么问题就变成了,如何让SQL Server触发器将变化的数据获取到Azure Tables中?

我唯一能想到的是在 SQL 数据库中有一个审计表(或多个表),以便触发器可以在本地插入行,然后每隔 X 秒有一个辅助角色从中提取任何行并移动它们到 Azure 表并从 SQL 数据库表中删除,这样它就不会变大。

有没有更好的方法来进行这种集成?我可以以某种方式将消息从触发器放入队列中吗?

最佳答案

Azure SQL 数据库(以前称为 SQL Azure)不支持 CLR(因此没有 EXTERNAL NAME 触发器参数),因此触发器无法在 T-SQL 之外执行任何操作。如果您希望审核内容进入表,您可以采用您想出的方法(暂时写入 SQL 表,然后定期将内容移动到表)。您还可以采取其他方法(这将是意见/主观的,在这里不受欢迎),但是因为您询问了队列,所以先介绍一下队列概念,并说明您可以使用 Azure 队列做什么:

您可以使用 Azure 队列来指定要在 SQL 数据库中插入/更新的项目。然后,队列处理代码可以负责执行更新并写入 Azure 表。由于处理后必须显式删除队列消息,因此如果执行过程中出现故障(例如,写入 SQL 但在写入表存储之前失败),您可以简单地重复队列消息处理。如果您未在超时值之前将其删除,则该消息最终会再次可见以供再次阅读。只要您的操作是幂等的,您就可以接受这种模式。

关于sql-server - Azure SQL 数据库触发器将审核信息插入 Azure 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20893845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com