我们公司是ISO27001认证的。因此,我们需要记录数据库事件。我们正在采取一种渐进的方法,首先从一个表上的日志事件开始。
这个特定的表包含登录用户的id。
我们想要创建
我们不需要记录查看数据的事件。
当使用Azure SQL时,最好的方法是什么?
下面的线程讨论在数据库中构建额外表的各种方法,以及使用触发器记录事件。https://stackoverflow.com/questions/38437/how-to-track-data-changes-in-a-database-table
不过,我希望利用Azure SQL中的数据库审计,部分原因是上述方法可以很容易地减缓数据库的速度。
我已经使用这个门户设置了一个数据库审计--它每天生成大约1.5GB的审计数据,这对我的目的来说是不必要的。
是否有一种将Azure数据库审计限制为只与一个表相关的方法?
发布于 2022-03-09 21:29:02
是的,您可以将Azure SQL数据库的审核配置为筛选到单个对象,但您需要使用Azure PowerShell模块。你不能通过传送门这么做。
下面的示例假设您已经通过Portal在数据库级别启用了审核。此脚本将审核操作组更改为"DATABASE_OBJECT_CHANGE_GROUP“,然后添加多个审核操作。审核操作是为要审计的表指定DML操作的地方。您必须分别指定每个存储过程。它只是一个逗号分隔的列表。
Set-AzSqlDatabaseAudit `
-ResourceGroupName "MyResourceGroupName" `
-ServerName "MySqlServerName" `
-DatabaseName "MyDatabaseName" `
-AuditActionGroup "DATABASE_OBJECT_CHANGE_GROUP" `
-AuditAction `
"INSERT, UPDATE, DELETE ON dbo.LoginTable BY public", `
"EXECUTE ON usp_InsertLoginTable BY public", `
"EXECUTE ON usp_DeleteLoginTable BY public"https://learn.microsoft.com/en-us/powershell/module/az.sql/set-azsqldatabaseaudit?view=azps-7.3.0
https://dba.stackexchange.com/questions/308486
复制相似问题